为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以使用指向嵌套结构的指针作为接收方参数?

是否可以使用指向嵌套结构的指针作为接收方参数?

Go
慕尼黑的夜晚无繁华 2022-09-19 10:09:55
通过使用作为接收器,我可以引用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()


查看完整回答
反对 回复 2022-09-19
  • 1 回答
  • 0 关注
  • 62 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信