budować na odpowiedź Nemo:
println
to funkcja wbudowana w języku. Jest w sekcji Bootstrapping w spec. Od linku:
Obecne implementacje zapewniają kilka wbudowanych funkcji przydatnych podczas ładowania. Funkcje te są udokumentowane pod kątem kompletności , ale nie można zagwarantować, że pozostaną w tym języku. Nie zwracają wyniku w postaci .
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
Zatem są one użyteczne dla programistów, ponieważ brakuje im zależnościami (jest wbudowane w kompilator), ale nie w kodzie produkcyjnym. Ważne jest również, aby zauważyć, że print
i println
raportować do , a nie stdout
.
Rodzina dostarczona przez fmt
została jednak zbudowana tak, aby była w kodzie produkcyjnym. Zgłaszają się przewidywalnie do stdout
, chyba że podano inaczej. Są bardziej uniwersalne (fmt.Fprint*
mogą raportować do dowolnego io.Writer
, na przykład os.Stdout
, os.Stderr
lub nawet net.Conn
) i nie są specyficzne dla implementacji.
Większość pakietów odpowiedzialnych za wyjście ma fmt
jako zależność, na przykład log
. Jeśli twój program będzie produkować coś w produkcji, najprawdopodobniej jest to pakiet, który chcesz.
Ta odpowiedź powinna zostać przyjęta. – Asim