Golang 中的零值
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比较的。