初始化结构体
约 515 字大约 2 分钟
2025-09-04
使用字段名初始化结构
初始化结构时,几乎应该始终指定字段名。目前由 go vet 强制执行。
| Bad | Good |
|---|---|
| |
例外:当有 3 个或更少的字段时,测试表中的字段名可以省略。
tests := []struct{
op Operation
want string
}{
{Add, "add"},
{Subtract, "subtract"},
}省略结构中的零值字段
初始化具有字段名的结构时,除非提供有意义的上下文,否则忽略值为零的字段。 也就是,让我们自动将这些设置为零值
| Bad | Good |
|---|---|
| |
这有助于通过省略该上下文中的默认值来减少阅读的障碍。只指定有意义的值。
在字段名提供有意义上下文的地方包含零值。例如,表驱动测试 中的测试用例可以受益于字段的名称,即使它们是零值的。
tests := []struct{
give string
want int
}{
{give: "0", want: 0},
// ...
}对零值结构使用 var
如果在声明中省略了结构的所有字段,请使用 var 声明结构。
| Bad | Good |
|---|---|
| |
这将零值结构与那些具有类似于为 初始化 Maps 创建的,区别于非零值字段的结构区分开来, 我们倾向于声明一个空切片
初始化 Struct 引用
在初始化结构引用时,请使用&T{}代替new(T),以使其与结构体初始化一致。
| Bad | Good |
|---|---|
| |
更新日志
2025/9/4 15:48
查看所有更新日志
a059b-新增Uber的Go语言规范于
