gpt4 book ai didi

go - 在golang的不同包中子类化一个对象

转载 作者:IT王子 更新时间:2023-10-29 01:25:02 26 4
gpt4 key购买 nike

我正在尝试为我在 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??
}

最佳答案

您不能在包外的结构中引用隐藏或“私有(private)”字段。

如果你愿意:

type BaseObject struct {
Base interface{}
}

Base 将在其他包的上下文中公开或“公开”,并且一切正常。

关于go - 在golang的不同包中子类化一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25621025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com