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