ExpertiDict

Go · Intermediário · Português · Técnico

método promovido

/ˈmɛ.to.du pɾo.mo.ˈvi.du/substantivo

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

Veja também

Todos os termos de Go