Go不支持继承,因此不存在父母和子女的概念。这使名称在以下文本中令人困惑。它还表明您需要在重新实现继承与以类似方式设计数据结构之间进行思维上的飞跃。这个问题花了我一些时间来解决这个问题,答案是
“不要从继承层次结构开始,不知道如何在继承中进行,从go开始并设计要使用可用工具进行的工作” 。
SomeFunction定义为将a
Parent作为参数,因此必须将其作为父级传递。如果您想让孩子通过,请执行以下 *** 作,即使用:
SomeFunction(child.Parent)
这就是传递嵌入式结构的方法。
但是,我怀疑您真正想做的是声明一个名为的接口
Parent,
Child实现它,并
SomeFunction采用一个
Parent接口。您的困惑将是当前
Parent拥有一个数据成员,而接口仅具有功能。最简单的修复方法取决于您要执行的 *** 作,但是一种途径是提供另一种函数来返回数据成员。然后,所有“子”类都可以嵌入此数据成员,而函数可以返回它(或指向它的指针)。但是,如果您对要尝试做的事情没有一个更清晰的了解,那只是猜测。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)