Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么struct literals是;字面上的;_Struct_Go_Literals - Fatal编程技术网

为什么struct literals是;字面上的;

为什么struct literals是;字面上的;,struct,go,literals,Struct,Go,Literals,在golang中,什么是结构文字 为什么即使有一个变量,下面的内容也是文字?结构不是字面上的变量吗,即使不是常量?那么这有什么意义呢 MyType{Field: var) 它有一个变量,但它是一个“文字” 还有,为什么在您第一次初始化它时,它只被称为“struct literal”?编程语言在引用语法方法来构造某些数据结构时使用“literal”一词。这意味着它不是通过创建一个空的并在运行时加或减来构造的 比较: MyType{Field: myVariable} 到 好处是代码的外观在某种

在golang中,什么是结构文字

为什么即使有一个变量,下面的内容也是文字?结构不是字面上的变量吗,即使不是常量?那么这有什么意义呢

MyType{Field: var)
它有一个变量,但它是一个“文字”


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

编程语言在引用语法方法来构造某些数据结构时使用“literal”一词。这意味着它不是通过创建一个空的并在运行时加或减来构造的

比较:

MyType{Field: myVariable}

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

以下是Go语言规范中的文本链接。请注意,它们都是定义数据结构的语法方法:


您可能会想到,但文字通常并不意味着常量。在很多语言中都是这样的。那么这是什么意思呢?因为它们是文字还有一些例子:
1
是一个int-literal,
“foo”
是一个字符串literal,等等。记住这一点的一个简单方法是,结构的数据就在代码中。
这意味着它不是通过创建一个空的文本并在执行时进行加减来构造的。
让我非常清楚。谢谢你@andyfeller
var x = new(MyType)
x.Field = myVariable