31得票3回答
Golang嵌入式结构体类型

我有这些类型:type Value interface{} type NamedValue struct { Name string Value Value } type ErrorValue struct { NamedValue Error error...

13得票7回答
防止在结构体初始化中遗漏字段

考虑这个例子。假设我有一个对象在我的代码库中无处不在:type Person struct { Name string Age int [some other fields] } 在代码库的某个深处,我还有一些创建新的Person结构的代码。也许它是类似于以下实用函数...

10得票1回答
在for循环初始化器中使用结构体

有没有想法为什么在for循环初始化器中使用这个struct表达式会导致语法错误?在这种情况下,指向结构体的指针运作良好,但我当然需要像以下这样的局部变量。感谢您的建议!type Request struct { id int line []byte err err...

10得票2回答
理解Go语言的组合字面量

为什么将函数值分配给f不是复合字面量? Go语言规范复合字面量如下所述,因此不能使用复合字面量构造函数值。 “复合字面量用于结构体、数组、切片和映射的值构造,并在每次评估时创建一个新值。” 但是,代码中将函数值分配给f看起来像是类型为func() int的复合字面量表达式。 有没有理由...

9得票2回答
Golang结构体字面量语法与未公开字段

我有一个相当大的结构体,直到刚才我一直在使用结构体字面量语法进行实例化,例如: Thing{ "the name", ... } 我刚刚给Thing结构体添加了一个未导出的字段,现在Go在抱怨:隐式赋值Thing文字中未导出的字段“config”。 即使在结构体上有一个未导出的...

8得票2回答
使用协议缓冲区构建Go代码时出错:结构体初始化程序中的值过少

我有一个proto文件: syntax = "proto3"; package main; message Client { int32 Id = 1; string Name = 2; string Email = 3; } 编译后的 Client 结构体如...

8得票1回答
匿名结构体, struct{}{}和{}的区别

我在golang中定义了一个string到struct的映射,如下所示: var Foo = map[string]struct{}{ "foo": struct{}{}, } 默认情况下,Gogland将这个声明标记为警告,并提示“多余的类型声明”。 var Foo = ma...