Go · Essencial · Inglês · Técnico
receiver
Parâmetro especial, escrito entre func e o nome, que liga uma função a um tipo e a transforma em método.
Onde usar
Em 'func (u User) Name() string', o (u User) é o receiver. No review discute-se se ele deve ser valor ou ponteiro, e nomes curtos como u ou s são o padrão.
Em código
type Counter struct{ n int }
func (c *Counter) Inc() { c.n++ }
func (c Counter) Value() int { return c.n }
var c Counter
c.Inc()
fmt.Println(c.Value())Exemplos
Should this method have a pointer receiver?
Esse método deveria ter um receiver de ponteiro?
Keep the receiver name short and consistent.
Mantenha o nome do receiver curto e consistente.
Cuidado
Não é como o this de outras linguagens: tem o nome que você escolher, e a escolha entre valor e ponteiro define se o método consegue alterar o original.
Sinônimos
receptor