栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Golang嵌入式结构

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang嵌入式结构

因此,您在这里遇到了Go的特质。嵌入是一种方法,它可以“提升”一个结构的方法以使其似乎存在于另一个结构上。尽管

type NodeProperties
应该直观地了解这些
Properties
方法
Node
,但该语法的作用是继承其方法
Node
的内存布局,
Properties
而不是其所有方法的内存布局。

它没有解释为什么做出这种设计选择,但是Go
Spec
至少是特定的(如果干燥的话)。如果您完全按原样阅读它,没有任何解释,那么它是非常准确的:

接口类型的方法集是其接口。任何其他类型T的方法集都包含以接收者类型T声明的所有方法

GetString
的接收器类型
Properties
不是not
Node
,认真地将规范解释为您是没有想象力的会计师。照这样说:

进一步的规则适用于包含匿名字段的结构,如有关结构类型的部分中所述。

如果xf是表示该字段或方法f的合法选择器,则将结构x中匿名字段的字段或方法f称为提升。

提升的字段的作用类似于结构的普通字段,只是它们不能用作结构的复合文字中的字段名称。

给定一个结构类型S和一个名为T的类型,在该方法的方法集中包括了以下改进的方法:

  • 如果S包含匿名字段T,则S和 S的方法集都包括接收者T的提升方法。 S的方法集也包括接收者* T的提升方法。
  • 如果S包含一个匿名字段 T,则S和 S的方法集都包括接收者T或* T的提升方法。

关于复合文字的这一行迫使您

Properties
在每次
Node
创建的内容中进行声明。

ps杰夫!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426830.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号