防止结构体字段用纯值方式初始化,添加 _ struct {} 字段:

  1. type Point struct {
  2. X, Y float64
  3. _ struct{} // to prevent unkeyed literals
  4. }

对于 Point {X:1,Y:1} 都可以,但是对于 Point {1,1} 则会出现编译错误:

  1. ./file.go:1:11: too few values in Point literal

当在你所有的结构体中添加了 _ struct{} 后,使用 go vet 命令进行检查,(原来声明的方式)就会提示没有足够的参数。