通过使用作为接收器,我可以引用B作为但是我想通过具有与父结构的方法不同的接收器,将与B嵌套结构相关的方法保留在它们自己的命名空间中(如果您愿意的话)。(并避免功能名称冲突)x *Ax.B type A struct { //... B struct { // ... } } //... func (x *A.B) method() { }错误:A.B undefined (type A has no method B) compiler(MissingFieldOrMethod)
1 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
我刚刚发现我必须在结构A之外定义B的类型,并直接在接收器中引用B。
在我的第一个示例中,B 是 A 的未命名类型的属性,当然,对于接收器参数,您必须引用命名类型。
(或者有没有办法从其实例中引用未命名的结构?
更正后的代码:
type A struct {
//...
b B
}
type B struct {
}
}
//...
func (x *B) method() {
}
//...
a A = &A{}
a.b.method()
- 1 回答
- 0 关注
- 62 浏览
添加回答
举报
0/150
提交
取消