Вопрос: Как устроены пакеты и что такое init()?

Go Junior Без компании
Вопрос: Как устроены пакеты и что такое init()?
Ответы
Пакет — единица компиляции/инкапсуляции. init() вызывается автоматически после инициализации переменных пакета и до main. ```go package main import "fmt" var X = func() int { fmt.Println("init var") return 10 }() func init() { fmt.Println("init func") } func main() { fmt.Println("main", X) } ``` init полезен для регистрации (например, драйверов), но злоупотреблять не стоит.