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

组合文字和嵌入式类型的字段

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

组合文字和嵌入式类型的字段

这不是编译器 错误, 而是设计决定。语言规范仅指出:

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

我想这背后的原因是为了避免歧义。使用选择器时,有一些规则可以解决名称冲突,为了允许您的建议,它们必须很复杂。最重要的是,如果您在嵌入类型的结构文字中使用嵌入式结构的现有实例,则可能会造成歧义。

编辑:这是一个可能适得其反的例子:

考虑一下您有一个嵌入B的A和要嵌入的A实例的情况:

type A {   X int}type B {   A}

这很简单

b := B{ X: 1 }

并推断应该做什么。但是,如果我们已经有A的实例怎么办?这没有道理:

a := A { X: 1 }b := B { X: 2, A: a, }

您是否首先将2分配给A的零实例,然后在它之上分配A的初始化实例?并等同于:

b := B { A: a, X: 2 }  ?

它打破了这样的假设:初始化顺序与具有字段名称的复合文字无关。



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

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

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