A função init é uma função especial em go. Cada arquivo de origem pode ter
uma função init ou mesmo várias funções init. Eles serão
avaliados logo antes da execução – o que significa que depois que todas as variáveis
foram inicializadas. Go inicializa na seguinte ordem:
pacotes importados -> variáveis ​​locais -> função (ões) init -> principal
Isso significa que, quando o init executar, as variáveis ​​que dependem do
código importado estarão utilizáveis. Pode ser usado para verificar o estado do programa ou fazer algum
tipo de inicialização para uma biblioteca.
Isso pode ser visto no pacote de imagens go, onde diferentes formatos são
importados para seus efeitos colaterais. A importação tÃpica se parece com isto:
// This is all you need to Decode gif and jpeg images
import (
"image"
_ "image/gif"
_ "image/jpeg"
)
Isso é feito com a função init. O pacote de imagem tem uma
função RegisterFormat que é para manter o estado do que é capaz
de decodificar / codificar. Em imagem / gif, a função init registra seu
formato, incluindo como detectar um gif e como decodificá-lo.
Bibliotecas de terceiros podem tirar vantagem disso – por exemplo
, webp lib de go também registra seu codec em uma função init, usando-o é
como usar um formato de biblioteca padrão.
Alguns recursos:
http://golang.org/doc/effective_go.html#init
http://code.google.com/p/go/source/browse/src/pkg/image/format.go?name=release
Editar: exemplo de função init
func init() {}