Go · Avançado · Inglês · Técnico
method set
Conjunto de métodos que um tipo possui para fins de interface: T inclui só métodos de receiver valor, e *T inclui os de valor e os de ponteiro.
Onde usar
Explica o erro 'T does not implement I (method M has pointer receiver)'. A solução é guardar &T na interface ou mudar o receiver do método.
Em código
type S interface{ Set() }
type T struct{}
func (*T) Set() {}
// var _ S = T{} // erro: receiver ponteiro
var _ S = &T{} // ok
var t T
t.Set() // ok, t é endereçávelExemplos
The value type's method set doesn't include pointer methods.
O method set do tipo valor não inclui os métodos de ponteiro.
Store a pointer in the interface to satisfy the method set.
Guarde um ponteiro na interface para satisfazer o method set.
Cuidado
Variáveis endereçáveis chamam métodos de ponteiro direto (v.M()), mas isso é açúcar do compilador e não altera o method set do tipo.
Sinônimos
conjunto de métodos