Swift: print() vs println() vs NSLog(): tutorial completo para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Swift: print() vs println() vs NSLog() — ¿qué elegir y por qué es importante?

\n\n

Cualquiera que empiece a aprender Swift, tarde o temprano se encuentra con la salida de datos a la consola. Parece algo sencillo, ¿verdad? Pero aquí surge la confusión: print(), println() y NSLog() — ¿cuál es la diferencia? ¿Por qué se necesitan tres formas si se podría dejar solo una? En este artículo lo desglosaremos todo, lo mostraremos con ejemplos y te ayudaremos a no confundir nunca más estas funciones.

\n\n

El tema se basa en una pregunta popular real de Stack Overflow que ha acumulado miles de visitas. Lo hemos adaptado para contenido educativo, para que puedas no solo memorizar, sino entender la lógica de Swift.

\n\n
\n\n

Breve historia: de Objective-C al Swift moderno

\n\n

Para entender la diferencia, hay que sumergirse un poco en la historia. Swift es un lenguaje joven (lanzado en 2014), pero fue creado como sucesor de Objective-C. Por lo tanto, conviven tanto funciones "nativas" de Swift como las antiguas provenientes del mundo Apple.

\n\n
    \n
  • println() — un vestigio de las primeras versiones de Swift (anteriores a la versión 2.0). Hoy está completamente eliminado.
  • \n
  • print() — el reemplazo moderno de println(), apareció en Swift 2.0.
  • \n
  • NSLog() — una función del mundo de Objective-C que todavía se usa activamente para depuración.
  • \n
\n\n

Si escribes en Swift moderno (versión 4.x y superiores), ya no te encontrarás con println() — el compilador simplemente dará un error. Pero en tutoriales antiguos y foros todavía aparece, por lo que es importante entender qué es y con qué se reemplazó.

\n\n
\n\n

print() — la herramienta principal para la salida

\n\n

¿Cómo funciona print()?

\n\n

A partir de Swift 2.0, print() se convirtió en la forma estándar de enviar datos a la consola. Es flexible, simple y completamente controlable.

\n\n
let name = "Ana"\nlet age = 25\n\nprint("¡Hola, \\(name)! Tienes \\(age) años.")\n// Salida: ¡Hola, Ana! Tienes 25 años.
\n\n

La principal diferencia con el antiguo println() es que print() no añade un carácter de nueva línea automáticamente. Bueno, sí lo añade, pero puedes controlarlo con el parámetro terminator.

\n\n
// Salida normal\nprint("Primera línea")\nprint("Segunda línea")\n// Salida:\n// Primera línea\n// Segunda línea\n\n// Salida sin salto de línea\nprint("Primera línea", terminator: "")\nprint("Segunda línea", terminator: "")\n// Salida: Primera líneaSegunda línea
\n\n

Parámetros de print()

\n\n
    \n
  • items — lo que se imprime (pueden ser varios valores separados por comas).
  • \n
  • separator — separador entre elementos (por defecto un espacio).
  • \n
  • terminator — qué poner al final de la línea (por defecto \\n — salto de línea).
  • \n
\n\n
print(1, 2, 3, separator: "-", terminator: "!")\n// Salida: 1-2-3!
\n\n

Cuándo usarlo: para salida de datos normal, registro en aplicaciones simples, ejemplos educativos.

\n\n
\n\n

println() — un visitante del pasado

\n\n

Si te encuentras con println() en algún código antiguo, debes saber que es el equivalente de print() de las primeras versiones de Swift. La única diferencia: println() siempre añadía un carácter de nueva línea al final, y no tenía el parámetro terminator.

\n\n
// Código antiguo en Swift 1.x\nlet x = 10\nprintln("El valor de x = \\(x)")\n// Salida: El valor de x = 10 (con salto de línea)
\n\n

En las versiones modernas de Swift (a partir de la 2.0) println() ya no existe. Si intentas usarlo, obtendrás un error de compilación. Simplemente reemplázalo por print() y todo funcionará.

Blogs

Book Recommendations