Ответ
Функция init() в Go — это специальная функция, которая автоматически выполняется перед вызовом main(). Она используется для инициализации пакета: настройки переменных, подключения к БД, регистрации зависимостей и т.д.
Особенности:
- Может быть несколько
init()в одном файле (выполняются в порядке объявления). - Вызываются для каждого пакета в порядке импорта (рекурсивно).
- Не принимает аргументы и не возвращает значения.
Пример:
package main
import "fmt"
var dbConn string
func init() {
dbConn = "user:pass@tcp(localhost:3306)/db"
fmt.Println("Init DB:", dbConn)
}
func main() {
fmt.Println("Main started")
}
Вывод:
Init DB: user:pass@tcp(localhost:3306)/db
Main started