Avatar ·

¿Cuál es la diferencia entre print(), println() y NSLog() en Swift y cuál es mejor usar?

¡Hola a todos! Empecé a estudiar Swift recientemente y noté que para mostrar información en la consola se pueden usar tres formas diferentes: print(), println() y NSLog(). Antes escribía en Python, donde todo es simple — un print() y listo. Pero aquí me confundí.

Por ejemplo, escribo un código simple:

let name = "Алексей"
let age = 28
print("Nombre: \(name), edad: \(age)")
println("Nombre: \(name), edad: \(age)")
NSLog("Nombre: \(name), edad: \(age)")

Las tres líneas muestran algo en la consola, pero el formato es diferente. NSLog agrega fecha, hora, nombre del proceso y algún identificador. Y println ni siquiera compila en Xcode 15 — dice que no existe tal función.

Leí artículos antiguos (de 2014–2016) donde decían que println() se usaba en Swift 1.x, y luego lo eliminaron. Pero algunos desarrolladores todavía recomiendan NSLog para debug. ¿Por qué? Si print() es más simple y corto.

También noté que NSLog() funciona más lento que print(). ¿Es verdad? ¿O es un mito?

Por favor, aclárenme:
1. ¿Cuáles