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

通过使用作为接收器,我可以引用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)


慕尼黑的夜晚无繁华
浏览 64回答 1
1回答

胡子哥哥

我刚刚发现我必须在结构A之外定义B的类型,并直接在接收器中引用B。在我的第一个示例中,B 是 A 的未命名类型的属性,当然,对于接收器参数,您必须引用命名类型。(或者有没有办法从其实例中引用未命名的结构?更正后的代码:    type A struct {        //...        b B    }    type B struct {        }    }    //...    func (x *B) method() {    }    //...    a A = &A{}    a.b.method()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go