ExpertiDict

Go · Avançado · Português · Técnico

tipo função

/ˈt͡ʃi.pu fũˈsɐ̃w̃/substantivo

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

Veja também

Todos os termos de Go