在golang中对不同包中的对象进行子类化

我正在尝试为我在 golang 中的所有结构创建一个基础对象。出于某种原因,当我创建的新对象位于不同的包中时,我无法让它工作。当它们在同一个包/文件夹中时它工作正常。


例如所有对象的基类


package Test


type BaseObject struct {

    base interface{}

}

---- 子文件夹 Test\Stuff ---


创建一个新的 TestObject,它是 BaseObject 的子类


package Stuff


import Test "Test"


type TestObject struct{

    Test.BaseObject

}

func (this *TestObject)DoSomething(){

    any reference to this.base or this.BaseObject.base fails!!!

}

--- 在同一个文件夹中,一切正常---


package Test


type TestObject struct{

    BaseObject

}

func (this *TestObject)DoSomething(){

    any reference to this.base works fine??

}


慕斯709654
浏览 253回答 1
1回答

吃鸡游戏

您不能在包外的结构中引用隐藏或“私有”字段。如果你只是这样做:type BaseObject struct {    Base interface{}}Base 将在其他包的上下文中公开或“公开”,并且一切正常。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go