Урок объясняет, как работает функция init() в Go, зачем она нужна, когда вызывается, как используется для подготовки программы и инициализации глобальных ресурсов.
init() - это специальная функция в Go, которая запускается
автоматически до выполнения main(). Она используется для подготовки
программы к работе: настройки, проверок, инициализации ресурсов и любых
действий, которые должны произойти перед стартом основной логики.
Функция init() позволяет выполнить код один раз перед startом
программы, например:
Go вызывает init() автоматически, без прямого вызова в коде.
init() вызывается до main()init()init() внутри одного пакета выполняются, прежде чем пакет
станет доступенvar EmailExpr *regexp.Regexp
func init() {
compiled, err := regexp.Compile(`.+@.+\..+`)
if err != nil {
panic("failed to compile regular expression")
}
EmailExpr = compiled
fmt.Println("regular expression compiled successfully")
}
Здесь init():
После инициализации можно безопасно использовать данные, подготовленные
в init():
func isValidEmail(addr string) bool {
return EmailExpr.Match([]byte(addr))
}
func main() {
fmt.Println(isValidEmail("invalid"))
fmt.Println(isValidEmail("valid@example.com"))
fmt.Println(isValidEmail("invalid@example"))
}
init() вызывается автоматически до main().init().