为什么是struct literals" literal"

时间:2015-03-20 18:44:26

标签: struct go literals

在golang中什么是结构文字?

即使存在变量,为什么以下是文字?即使不是const,结构也不是字面上可变的吗?那么它是如何有意义的。

MyType{Field: var)

它有一个变量,但它是一个“文字”?

为什么在你第一次初始化时它只被称为“struct literal”?

1 个答案:

答案 0 :(得分:9)

编程语言使用" Literal"在提到构造一些数据结构的句法方法时。这意味着它不是通过创建一个空的并且在你去的时候加上或减去来构建的。

比较

MyType{Field: myVariable}

var x = new(MyType)
x.Field = myVariable

好处是您的代码外观以某种方式反映了数据结构。缺点是您必须事先知道布局并且已经初始化了内容,这是不可能的,例如,如果您正在构建具有未知密钥的地图。

GoLang语言文档以获取更多信息: