nho*_*oyr 3 struct literals go
在golang什么是结构文字?
即使存在变量,为什么以下是文字?即使不是const,结构也不是字面上可变的吗?那怎么有意义呢.
MyType{Field: var)
Run Code Online (Sandbox Code Playgroud)
它有一个变量,但它是一个"文字"?
另外,为什么在你第一次初始化时它只被称为"struct literal"?
Cri*_*ole 11
编程语言在引用构造某些数据结构的句法方法时使用"Literal"一词.这意味着它不是通过创建一个空的并且随时添加或减去构造的.
相比:
MyType{Field: myVariable}
Run Code Online (Sandbox Code Playgroud)
至
var x = new(MyType)
x.Field = myVariable
Run Code Online (Sandbox Code Playgroud)
好处是代码的外观以某种方式反映了数据结构.缺点是您必须事先知道布局并且已经初始化了内容,这是不可能的,例如,如果您正在构建具有未知密钥的地图.
GoLang语言文档了解更多信息: