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

Golang 与继承

Golang 与继承

Go
肥皂起泡泡 2021-11-01 16:37:33
我想在我的库中提供一个可以“扩展”的方法的基本结构。此基础结构的方法依赖于来自扩展结构的方法。这在 Go 中是不可能直接实现的,因为结构体方法只能访问结构体自己的字段,而不是父结构体。重点是具有我不必在每个扩展类中重复的功能。我想出了这个模式,它工作得很好,但由于它的循环结构看起来很复杂。我从未在其他 Go 代码中找到类似的东西。这是非常不走的吗?我可以采取什么不同的方法?type MyInterface interface {  SomeMethod(string)  OtherMethod(string)}type Base struct{  B MyInterface}func (b *Base) SomeMethod(x string) {  b.B.OtherMethod(x)}type Extender struct {  Base}func (b *Extender) OtherMethod(x string) {  // Do something...}func NewExtender() *Extender {   e := Extender{}  e.Base.B = &e  return &e}
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

很抱歉让您失望,但您问错了问题。当我开始编写 Go 代码时,我遇到了类似的问题。

您不能简单地将类层次结构转换为 Go 代码,至少不会得到令人满意的结果。通常在 Go 中有一种非常优雅和简单的方法来解决这些问题,但是要发现它们,您需要像以往那样思考。

不幸的是,您的问题并没有说明您要解决什么问题。您刚刚描述您希望如何解决它。因此我有点不愿意给出一个笼统的答案,因为它不会导致惯用的 Go 代码。我理解你是否对这个答案感到失望,但在我看来,这是你能得到的最有价值的答案:)



查看完整回答
反对 回复 2021-11-01
  • 2 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

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