不同 Go 类型的零值(没有显式初始化的默认值)是什么?

What are the zero values (default values without explicit initialization) for different Go types?

Go 给出默认值,或 零值 ,用于在没有显式初始化的情况下声明的变量。内置类型有哪些不同的零值?

  • 布尔值:
  • 整数:0
  • 浮点数:0.0
  • 字符串:“”
  • 指针:无
  • 函数:无
  • 接口:无
  • 切片:无
  • 频道:无
  • 地图:无

这是递归完成的,因此数组和结构(以及结构数组等)的未初始化值将设置为上述零值。

这也适用于使用 newmake 为变量分配存储空间。

来源:http://golang.org/ref/spec#The_zero_value