Go · Intermediário · Português · Técnico
método promovido
Método de um tipo embutido que passa a ser chamado diretamente na struct externa, como se fosse dela.
Onde usar
Dá para chamar d.Speak() em vez de d.Animal.Speak(). Se o tipo externo definir um método com o mesmo nome, o dele sombreia o promovido.
Em código
type Base struct{}
func (Base) Hi() string { return "base" }
type Top struct{ Base }
func (Top) Hi() string { return "top" }
t := Top{}
fmt.Println(t.Hi(), t.Base.Hi())Exemplos
Esse método é promovido do tipo embutido, por isso a struct já responde a ele.
Se definir o mesmo nome na struct externa, ele esconde o método promovido.
Cuidado
Não é sobrescrita virtual: o método promovido continua chamando o próprio tipo embutido, sem enxergar o método do tipo externo.
Sinônimos
promoted method