是否可以在不使用嵌入结构的情况下继承某个类型的方法?
讨论围绕使用嵌入结构来访问另一种类型的方法的概念。作者指出,嵌入结构会迫使他们在初始化包含结构时初始化嵌入的结构,他们觉得这很麻烦。他们提供了代码示例来演示该问题,并表达了他们避免显式初始化嵌入结构的愿望。
该响应解决了在没有嵌入结构的情况下阻止继承的技术限制。它解释了只有通过嵌入才能将方法从一种类型提升到另一种类型。 Go 规范被引用为权威,指出结构体的方法集仅包含以该结构体作为接收者类型声明的方法。
响应然后深入研究进入提升字段的概念,这些字段是可以通过包含结构直接访问的匿名嵌入结构的字段。但是,提升的字段不能在复合文字中使用,在创建包含嵌入式匿名字段的结构时需要显式初始化。
答案承认使用嵌入式结构的局限性和Go 中缺乏直接继承机制。它强调使用嵌入式结构的主要原因是促进方法而不是数据字段,因为可以通过组合来访问数据。
响应幽默地以个人问候结束作者 Jeff,引用了之前的交互。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3