Go · Avançado · Português · Técnico
tipo função
Tipo definido a partir de uma assinatura de função, como type Handler func(string) error. Funções viram valores nomeados e podem ter métodos, como http.HandlerFunc.
Onde usar
Permite que uma função comum satisfaça uma interface, o padrão de adaptador usado em middlewares HTTP. Também deixa o código mais legível que repetir a assinatura.
Em código
type Logger interface{ Log(string) }
type LogFunc func(string)
func (f LogFunc) Log(s string) { f(s) }
var l Logger = LogFunc(func(s string) {
fmt.Println(s)
})Exemplos
O HandlerFunc é um tipo função que implementa a interface Handler.
Criei um tipo função para adaptar uma função solta a uma interface.
Cuidado
A conversão LogFunc(f) não executa nada; ela apenas muda o tipo da função para que ela ganhe os métodos do tipo.
Sinônimos
function type