На основі відповіді немо:
println
- це функція, вбудована в мову. Він знаходиться в розділі завантаження специфікації . За посиланням:
Поточні реалізації забезпечують кілька вбудованих функцій, корисних під час завантаження. Ці функції задокументовані для повноти, але не гарантовано залишаються в мові. Вони не повертають результату.
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
Таким чином, вони корисні розробникам, оскільки їм бракує залежностей (вбудованих у компілятор), але не у виробничому коді. Також важливо зауважити, що print
і не println
доповідати stderr
, а неstdout
.
Однак сім'я, що надається компанією fmt
, будується у виробничому коді. Вони звітуються передбачувано stdout
, якщо не вказано інше. Вони більш універсальні ( fmt.Fprint*
можуть повідомити будь-якому io.Writer
, наприклад os.Stdout
, os.Stderr
або навіть net.Conn
тип.) І не конкретної реалізації.
Більшість пакетів, які відповідають за вихід є fmt
як залежність, таких як log
. Якщо ваша програма буде випускати що-небудь у виробництві, fmt
швидше за все, той пакет, який ви хочете.