Pour construire sur la réponse de Nemo:
println
est une fonction intégrée à la langue. C'est dans la section Bootstrapping de la spécification . Depuis le lien:
Les implémentations actuelles fournissent plusieurs fonctions intégrées utiles lors de l'amorçage. Ces fonctions sont documentées par souci d'exhaustivité mais ne sont pas garanties de rester dans la langue. Ils ne renvoient pas de résultat.
Function Behavior
print prints all arguments; formatting of arguments is implementation-specific
println like print but prints spaces between arguments and a newline at the end
Ainsi, ils sont utiles aux développeurs, car ils manquent de dépendances (en cours de construction dans le compilateur), mais pas dans le code de production. Il est également important de le noter print
et d'en faire println
rapport stderr
, nonstdout
.
La famille fournie par fmt
, cependant, est conçue pour être en code de production. Ils font rapport de manière prévisible à stdout
, sauf indication contraire. Ils sont plus polyvalents ( fmt.Fprint*
peut signaler à tout io.Writer
, comme os.Stdout
, os.Stderr
ou même le net.Conn
type.) Et ne sont pas spécifiques de mise en œuvre.
La plupart des packages responsables de la sortie ont fmt
une dépendance, telle que log
. Si votre programme doit produire quelque chose en production, fmt
c'est probablement le package que vous souhaitez.
Alexander Bauer
la source
Exemple intéressant:
C'est quelque chose de différent entre
println
etfmt.Printf
.la source