Swift: print() vs println() vs NSLog() : tutoriel complet pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Swift: print() vs println() vs NSLog() — que choisir et pourquoi est-ce important ?

\n\n

Quiconque commence à apprendre Swift se retrouve tôt ou tard confronté à l'affichage de données dans la console. Rien de plus simple, semble-t-il. Mais une confusion surgit : print(), println() et NSLog() — quelle est la différence ? Pourquoi trois méthodes si une seule suffirait ? Dans cet article, nous allons tout clarifier, illustrer avec des exemples et vous aider à ne plus jamais confondre ces fonctions.

\n\n

Ce sujet est basé sur une question populaire réelle de Stack Overflow, qui a recueilli des milliers de vues. Nous l'avons adaptée pour un contenu éducatif, afin que vous puissiez non seulement mémoriser, mais aussi comprendre la logique de Swift.

\n\n
\n\n

Bref historique : d'Objective-C au Swift moderne

\n\n

Pour comprendre la différence, il faut se plonger un peu dans l'histoire. Swift est un langage jeune (sorti en 2014), mais il a été créé comme successeur d'Objective-C. C'est pourquoi coexistent pacifiquement des fonctions « natives » de Swift et d'anciennes venues du monde Apple.

\n\n
    \n
  • println() — une relique des toutes premières versions de Swift (avant la version 2.0). Aujourd'hui, elle a été complètement supprimée.
  • \n
  • print() — le remplacement moderne de println(), apparu dans Swift 2.0.
  • \n
  • NSLog() — une fonction du monde Objective-C, encore activement utilisée pour le débogage.
  • \n
\n\n

Si vous écrivez en Swift moderne (versions 4.x et supérieures), vous ne rencontrerez plus println() — le compilateur générera simplement une erreur. Mais dans les anciens tutoriels et forums, il apparaît encore, il est donc important de comprendre ce que c'est et par quoi il a été remplacé.

\n\n
\n\n

print() — l'outil principal pour l'affichage

\n\n

Comment fonctionne print() ?

\n\n

Depuis Swift 2.0, print() est devenu le moyen standard d'afficher des données dans la console. Il est flexible, simple et entièrement contrôlable.

\n\n
let name = "Anna"\nlet age = 25\n\nprint("Bonjour, \\(name) ! Tu as \\(age) ans.")\n// Affichage : Bonjour, Anna ! Tu as 25 ans.
\n\n

La principale différence avec l'ancien println() est que print() n'ajoute pas automatiquement un caractère de nouvelle ligne. En fait, il l'ajoute, mais vous pouvez le contrôler avec le paramètre terminator.

\n\n
// Affichage normal\nprint("Première ligne")\nprint("Deuxième ligne")\n// Affichage :\n// Première ligne\n// Deuxième ligne\n\n// Affichage sans saut de ligne\nprint("Première ligne", terminator: "")\nprint("Deuxième ligne", terminator: "")\n// Affichage : Première ligneDeuxième ligne
\n\n

Paramètres de print()

\n\n
    \n
  • items — ce que vous affichez (peut être plusieurs valeurs séparées par des virgules).
  • \n
  • separator — le séparateur entre les éléments (par défaut un espace).
  • \n
  • terminator — ce qui est placé à la fin de la ligne (par défaut \\n — un saut de ligne).
  • \n
\n\n
print(1, 2, 3, separator: "-", terminator: "!")\n// Affichage : 1-2-3!
\n\n

Quand l'utiliser : pour l'affichage normal de données, la journalisation dans des applications simples, les exemples pédagogiques.

\n\n
\n\n

println() — un invité du passé

\n\n

Si vous rencontrez println() dans un ancien code, sachez qu'il s'agit de l'équivalent de print() des premières versions de Swift. La seule différence : println() ajoutait toujours un caractère de nouvelle ligne à la fin, et n'avait pas de paramètre terminator.

\n\n
// Ancien code en Swift 1.x\nlet x = 10\nprintln("Valeur de x = \\(x)")\n// Affichage : Valeur de x = 10 (avec saut de ligne)
\n\n

Dans les versions modernes de Swift (à partir de la 2.0), println() n'existe plus. Si vous essayez de l'utiliser, vous obtiendrez une erreur de compilation. Remplacez-le simplement par print() — et tout fonctionnera.

Blogs

Book Recommendations