ExpertiDict

Go · Essencial · Inglês · Técnico

receiver

/ɹɪˈsiːvɚ/substantivo

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

Veja também

Todos os termos de Go