Quando a função init () é executada?

Eu tentei encontrar uma explicação precisa do que oinit() função faz no Go. Eu li o queGo eficaz diz, mas não tinha certeza se entendia completamente o que dizia. A frase exata que não tenho certeza é a seguinte:

E finalmente significa finalmente: init é chamado depois que todas as declarações de variáveis no pacote avaliaram seus inicializadores e essas são avaliadas somente depois que todos os pacotes importados foram inicializados.

O queall the variable declarations in the package have evaluated their initializers significar? Isso significa que se você declarar variáveis "globais" em um pacote e seus arquivos, o init () não será executado até que tudo seja avaliado e, em seguida, executará toda a função init e, em seguida, main () quando o arquivo ./main_file_name for executado?

Também li o livro de Mark Summerfield:

Se um pacote tiver uma ou mais funções init (), ele será executado automaticamente antes que a função main () do pacote principal seja chamada.

A meu ver,init() só é relevante quando você executa a intenção de executar main (), certo? ou o pacote principal. Alguém entende mais precisamenteinit() Sinta-se à vontade para me corrigir

questionAnswers(9)

yourAnswerToTheQuestion