Comments 5
Использовать init уже давно не рекомендуется самим гуглом.
Я был слегка удивлён, когда просто import мне добавил несколько опций в сommand-line options, и мой --help стал выбавать ещё какую-то хрень, о которой я не ожидал.
И, главное, я просто хочу подключить внешнюю библиотеку, и не затащить ещё себе опций в комманд-лайн дополнительных.
Пакет собирает несколько исходных файлов в одном каталоге. Он похож на ящик, в котором находятся некоторые инструменты или небольшая машина. Он является отправной точкой для инициализации всего пакета
Ммм.. что? Пакет является отправной точкой для инициализации пакета?
Пакет по-прежнему работает. Но функция
init
выполняется неявно, как вы и не знали. В Golang вы должны принять затраты наinit
, если вы являетесь пользователем пакета. Это просто, но затраты будут не только на неявно выполняемую функцию, но и на весь пакет.
Как мы и не знали, мы должны принять затраты...
Текст, вроде, перевели, но хотелось бы на русский язык.
Когда я только начинал знакомиться с Го, первое, о чемя подумал после прочтения о функции init, было "Вау! Тут же можно без каких-то костылей просто и беззастенчиво генерировать синглтоны!" Должен признаться, я с таким подходом знатно наговнокодил в своём первом коммерческом проекте на Го...
Спасибо за пояснение! Из-за воплей линтера давно ее не использую, но интересно было узнать почему ее не любят. :)
Проблемы функции Golang init