zero value (零值)

在golang中,零值会在很多地方隐式的用到,所以把零值列出来。

  • 0 所有的integer类型 (int32/int64/…)
  • 0.0 所有的float类型 (float32/float64/…)
  • false boolean类型
  • "" string类型, 这点要特别注意,从java过来的开发人员容易认为 nil是把 string和nil比较, 应该 str == "" ,不是 str == nil
  • nil interface, slices, channels, maps, pointers and functions. 按java中的说法,基本上是所有的传引用类型的

array/struct 是里面的所有元素或者field的零值, 所以array / struct是不能和nil比较的。