Функция init() может затруднить чтение кода по нескольким причинам:
- Неясный порядок выполнения. 12 Функция init() загружается раньше всего остального кода в пакете, и порядок её выполнения зависит от порядка загрузки исходных файлов. 1 Когда в коде есть несколько экземпляров init(), сложно понять, какой из них имеет приоритет над другими. 1
- Изменение порядка обработки. 1 При разработке программного обеспечения имена файлов часто меняются, и это может изменить порядок обработки функций init(). 1 Это может привести к нежелательным переменам в выводе программы. 1
- Использование глобальных переменных. 1 Если для управления состоянием пакета используются глобальные переменные, доступные из любой точки в пакете, то операторы init() могут изменить переменную и дестабилизировать предсказуемость программы. 1
- Невозможность контролировать время выполнения. 2 Функция init() является глобальной, и невозможно контролировать время её выполнения. 2
Чтобы облегчить чтение кода, рекомендуется избегать использования нескольких операторов init() или хранить их в одном файле. 1