🟡 Средний · 2 очк. Основы синтаксиса
Сколько функций init() может быть в одном Go-файле?
A Только одна
B Несколько - все вызываются при инициализации пакета
C Не более двух
D init() запрещена в пользовательском коде
Объяснение вопроса

В одном файле может быть несколько функций init(). Все они вызываются автоматически при инициализации пакета, в порядке их объявления в файле. Явно вызвать init() нельзя. Порядок выполнения init между файлами пакета - по имени файла (лексический).

func init() { fmt.Println("first") }
func init() { fmt.Println("second") }
// При загрузке пакета: first, second

init() выполняется после инициализации глобальных переменных пакета. Используется для регистрации драйверов (например, import _ "github.com/lib/pq"), инициализации глобального состояния.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.