Descubre por qué, desde Swift 3, la función de impresión agrega automáticamente una nueva línea a la salida y cómo evitar este comportamiento.

Para describir gráficamente el problema que enfrentan muchos desarrolladores con esta simple instrucción en Swift, analizaremos el siguiente código y deberá adivinar el resultado:

print(1)
print(2)
print(3)

Como un desarrollador que no tiene ningún contacto con el lenguaje rápido puede simplemente pensar que la printfunción es un equivalente de una función echo(de PHP) o printf(de C), por lo que la salida esperada debería ser:

123

Sin embargo, Swift no respeta las reglas porque es un tipo rudo y hace lo que quiere e imprimirá en su lugar:

1
2
3

En este artículo, explicaremos brevemente por qué sucede esto y cómo prevenir este comportamiento en su código.

Imprimir contenido en la misma línea

Desde Swift 3, la documentación del método de impresión es la siguiente:

public func print<Target>(_ items: Any..., separator: String = default, terminator: String = default, to output: inout Target) where Target : TextOutputStream

De forma predeterminada, la función de impresión escribe las representaciones textuales de los elementos dados en la salida estándar en una sola línea, cada vez que se utiliza la función. Este comportamiento se puede anular fácilmente definiendo el parámetro terminator como una cadena vacía:

Terminator Parameter Swift

No ese terminador , sino específicamente el terminator: Stringparámetro del printmétodo. Por ejemplo, para corregir la salida esperada del ejemplo inicial, podríamos simplemente cambiar el parámetro a una cadena vacía:

print(1, terminator:"")
print(2, terminator:"")
print(3, terminator:"")

Y el resultado de nuestro código será (como lo espera cualquier desarrollador):

123

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores