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