Да, ты можешь иметь несколько функций init() в одном пакете Go или файле.
Когда существует несколько функций init(), они выполняются в порядке, в котором они появляются в исходном коде:
main()init() в пакете завершаются до начала выполнения программыinit() должна иметь точную сигнатуру func init()init() напрямую; они выполняются автоматическиinit()init() только для инициализации на уровне пакетаSetup() или Initialize() вместо этогоinit() в комментариях к кодуfunc init() {
// Первая инициализация
}
func init() {
// Вторая инициализация (запускается после первой)
}
Эта особенность полезна для настройки глобального состояния, подключений к базам данных или конфигурации, но использовать её нужно с умом, чтобы код оставался понятным и легко тестируемым.
Несколько функций init() в одном файле выполняются в том порядке, в котором они появляются в исходном коде, сверху вниз.
Новый — ещё не проверен сообществом
Вы