Um auf Nemos Antwort aufzubauen:
println
ist eine in die Sprache eingebaute Funktion. Es befindet sich im Abschnitt Bootstrapping der Spezifikation . Über den Link:
Aktuelle Implementierungen bieten mehrere integrierte Funktionen, die beim Bootstrapping nützlich sind. Diese Funktionen sind der Vollständigkeit halber dokumentiert, es wird jedoch nicht garantiert, dass sie in der Sprache bleiben. Sie geben kein Ergebnis zurück.
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
Daher sind sie für Entwickler nützlich, da ihnen Abhängigkeiten fehlen (die in den Compiler integriert sind), jedoch nicht im Produktionscode. Es ist auch wichtig zu beachten , dass print
und println
Bericht stderr
nichtstdout
.
Die von bereitgestellte Familie fmt
ist jedoch so aufgebaut, dass sie im Produktionscode enthalten ist. Sie berichten vorhersehbar an stdout
, sofern nicht anders angegeben. Sie sind vielseitig ( fmt.Fprint*
können zu einem Bericht io.Writer
, wie os.Stdout
, os.Stderr
oder sogar einnet.Conn
Art.) Und sind nicht Umsetzung spezifisch.
Die meisten Pakete, die für die Ausgabe verantwortlich sind, haben fmt
eine Abhängigkeit, wie z log
. Wenn Ihr Programm irgendetwas in der Produktion ausgibt, fmt
ist es höchstwahrscheinlich das Paket, das Sie wollen.
Interessantes Beispiel:
Es ist etwas Unterschied zwischen
println
undfmt.Printf
.quelle