auf nemo Antwort zu bauen:
println
eine Funktion in die Sprache integriert ist. Es befindet sich im Bootstrapping-Bereich der spec. Von der Verbindung:
Aktuelle Implementierungen stellen einige eingebaute nützliche Funktionen während des Urladens zur Verfügung. Diese Funktionen sind aus Gründen der Vollständigkeit dokumentiert. Es ist 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
So sind sie für Entwickler nützlich, weil sie Abhängigkeiten fehlt (in den Compiler gebaut wird), aber nicht in der Produktion Code. Es ist auch wichtig zu beachten, dass print
und println
Bericht an stderr
, nicht stdout
melden.
Die Familie, die von fmt
zur Verfügung gestellt wird, sind jedoch in Produktionscode erstellt. Sie melden vorhersehbar stdout
, wenn nicht anders angegeben. Sie sind vielseitiger (fmt.Fprint*
können zu jedem io.Writer
, wie os.Stdout
, os.Stderr
, oder sogar einen net.Conn
-Typ melden.) Und sind nicht implementierungsspezifisch. Die meisten Pakete, die für die Ausgabe zuständig sind, haben fmt
als Abhängigkeit, z. B. log
. Wenn Ihr Programm etwas in der Produktion ausgibt, ist fmt
höchstwahrscheinlich das Paket, das Sie möchten.
Diese Antwort sollte akzeptiert werden. – Asim