Enquanto outras respostas o descreveram completamente, para as pessoas "Mostre-me o Código", isso basicamente significa: criar variáveis no nível do pacote e executar a init
função desse pacote.
E (se houver) a hierarquia das variáveis no nível do pacote e as init
funções dos pacotes que este pacote foi importado.
O único efeito colateral que um pacote pode causar, sem ser chamado de fato, é criando variáveis no nível do pacote (públicas ou privadas) e dentro de sua init
função.
Nota : Existe um truque para executar uma função antes mesmo da init
função. Podemos usar variáveis de nível de pacote para isso, inicializando-as usando essa função.
func theVeryFirstFunction() int {
log.Println("theVeryFirstFunction")
return 6
}
var (
Num = theVeryFirstFunction()
)
func init() { log.Println("init", Num) }