На основі відповіді немо:
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швидше за все, той пакет, який ви хочете.