使用匿名方法嵌入时,有没有办法从“父”结构上的方法访问“子”结构的名称。
例如:
type Animal struct{}
func (a Animal) SayName() string {
v := reflect.TypeOf(a)
return v.Name()
}
type Zebra struct {
Animal
}
var zebra Zebra
zebraName := zebra.SayName() // "Animal" want "Zebra"
SayName() 方法返回type.Name()
“父级”的。
我意识到我可以做这样的事情,但是因为这是一个 API,并且会经常被重用。我希望有一个重复性较低的解决方案。
type Animal struct{
Name string
}
func (a Animal) SayName() string {
return a.Name
}
type Zebra struct {
Animal
}
zebra := &Zebra{Name:"Zebra"}
zebraName := zebra.SayName() // "Zebra"
关于如何实现这一点的任何想法?这在 Go 中可能吗?
谢谢你。