为什么结构文字 "literal"

Why are struct literals "literal"

在 golang 中什么是结构文字?

为什么明明有变量,下面还是文字?结构不是字面上的变量,即使不是常量吗?那么它有什么意义呢。

MyType{Field: var)

它有一个变量,但它是一个 "literal"?

还有为什么第一次初始化的时候只叫"struct literal"?

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

比较:

MyType{Field: myVariable}

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

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

这里是 Go 语言规范中文字的链接。请注意,它们都是定义数据结构的句法方式: