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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Go 是否在匿名结构中导出字段会有任何区别吗?_Go_Anonymous Struct - Fatal编程技术网

Go 是否在匿名结构中导出字段会有任何区别吗?

Go 是否在匿名结构中导出字段会有任何区别吗?,go,anonymous-struct,Go,Anonymous Struct,导出(或不导出)golang中匿名结构中的字段会有什么不同吗?换句话说,以下两段代码是否有任何不同?考虑到它是一个匿名结构,您不能在变量本身之外使用该结构,因此我假设大写字母F在编译时没有任何区别(没有编译速度或运行时内存差异) 第1区: var test = struct { FieldOne string FieldTwo string } { FieldOne: "some string", FieldTwo: "some other string", } 第2区

导出(或不导出)golang中匿名结构中的字段会有什么不同吗?换句话说,以下两段代码是否有任何不同?考虑到它是一个匿名结构,您不能在变量本身之外使用该结构,因此我假设大写字母F在编译时没有任何区别(没有编译速度或运行时内存差异)

第1区:

var test = struct {
   FieldOne string
   FieldTwo string
} {
   FieldOne: "some string",
   FieldTwo: "some other string",
}
第2区:

var test = struct {
   fieldOne string
   fieldTwo string
} {
   fieldOne: "some string",
   fieldTwo: "some other string",
}
导出(或不导出)golang中匿名结构中的字段会有什么不同吗


当然,所有的常规规则都适用(例如,如果您尝试将结构提供给
json.Marshal
,您会看到不同之处)。

当然适用,因为反射。尝试在每次声明之后调用
json.Marshal(test)
。在第一种情况下,您将得到
{“FieldOne”:“some string”,“FieldTwo”:“some other string”}
,但在第二种情况下,您将得到
{}
。这是因为JSON封送处理程序只“看到”导出的结构字段。更一般地说,即使
test
的类型没有名称,也不意味着该类型本身是不可访问的;任何有反射的东西都可以访问它。

为什么我被否决了?