Golang各种数据类型的零值

2024年1月9日 · 437 字 · 1 分钟 · Go语法

Golang各种数据类型的零值

什么是“零值”

在Go(Golang)中,每种数据类型都有一个“零值”,即当变量被声明后却没有显式初始化时,该变量的默认值。

常见数据类型的零值

  • int 类型的零值是 0。
  • float32 和 float64 类型的零值也是 0(或者 0.0)。
  • string 类型的零值是空字符串 “"。
  • bool 类型的零值是 false。
  • 对于指针类型(*T),零值是 nil。
  • 切片(slice)类型的零值是 nil。
  • 映射(map)类型的零值是 nil。
  • 通道(chan)类型的零值是 nil。
  • 函数(func)类型的零值是 nil。
  • 接口(interface)类型的零值是 nil。
  • 数组(array)类型的零值是数组的每个元素都设置为其类型的零值。
  • 结构体(struct)类型的零值是所有字段都设置为其类型的零值。

结构体的零值

结构体字段的零值是每个字段都设置为其类型的零值。

例如,如果你有一个结构体类型如下:

type Example struct {
    Number int
    Text   string
    Flag   bool
}

声明而不初始化这个结构体的实例,将得到每个字段的零值:

var ex Example
// ex.Number 为 0
// ex.Text 为空字符串 ""
// ex.Flag 为 false

参考资料