Função init do Go

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() {}