ExpertiDict

Go · Intermediário · Português · Técnico

função init

/fũˈsɐ̃w̃ ˈi.nit/substantivo

Função especial chamada init, sem parâmetros nem retorno, executada automaticamente uma vez por pacote antes de main, depois da inicialização das variáveis do pacote.

Onde usar

Serve para registrar drivers ou preparar estado do pacote. Ela dificulta testes e esconde efeitos colaterais, por isso muitos times preferem inicialização explícita.

Em código

var base = 10 // inicializada antes do init

func init() {
  fmt.Println("init", base)
}

func main() { fmt.Println("main") }

Exemplos

O driver se registra na função init do pacote.

Evite lógica pesada na init, porque ela roda antes do main e dificulta o teste.

Cuidado

Não pode ser chamada nem referenciada pelo código, e um mesmo pacote pode ter várias funções init em arquivos diferentes.

Sinônimos

init

Veja também

Todos os termos de Go