struct A {}
func (a *A) BName(id int) string {
return a.Name
}
struct B {
*A
Name string
}
func main() {
b := &B{Name: "abc"}
fmt.Println(b.Name)
}
代码失败,我想知道怎么写代码实现,A.BName可以访问B的struct属性Name
这不可能。 struct A 对它嵌入的类型一无所知。想一想,A可以嵌入到any其他结构体,那么你怎么能提前知道 A 嵌入的结构体的类型。
如果你想这样做,你需要将对 B 的引用(外部结构)放入 A 中。
type A struct {
*B
}
func (a *A) PrintName() string { return a.B.Name }
type B struct {
A // no need to use a pointer here
Name string
}
var b B
b.A.B = &b
fmt.Println(b.PrintName())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)