为什么结构文字 "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 语言规范中文字的链接。请注意,它们都是定义数据结构的句法方式:
在 golang 中什么是结构文字?
为什么明明有变量,下面还是文字?结构不是字面上的变量,即使不是常量吗?那么它有什么意义呢。
MyType{Field: var)
它有一个变量,但它是一个 "literal"?
还有为什么第一次初始化的时候只叫"struct literal"?
编程语言在提到构造某些数据结构的句法方式时使用 "Literal" 一词。这意味着它不是通过创建一个空的并随意添加或减去来构建的。
比较:
MyType{Field: myVariable}
至
var x = new(MyType)
x.Field = myVariable
好处是您的代码外观以某种方式反映了数据结构。缺点是您必须提前知道布局并且已经初始化了内容,这是不可能的,例如,如果您正在构建具有未知键的地图。
这里是 Go 语言规范中文字的链接。请注意,它们都是定义数据结构的句法方式: