📅  最后修改于: 2023-12-03 15:01:02.207000             🧑  作者: Mango
在 Golang 中,每个变量都有一个默认值,即“零值”。未初始化的变量将被赋予它们的零值。
下面是 Golang 中各种数据类型的零值:
| 类型 | 零值 | | ---- | ---- | | int8 | 0 | | int16 | 0 | | int32 | 0 | | int64 | 0 | | uint8 | 0 | | uint16 | 0 | | uint32 | 0 | | uint64 | 0 |
| 类型 | 零值 | | ---- | ---- | | float32 | 0 | | float64 | 0 |
| 类型 | 零值 | | ---- | ---- | | bool | false |
| 类型 | 零值 | | ---- | ---- | | string | "" |
数组的零值是一个具有相同类型的数组,其中所有元素都被设置为其类型的零值。
var a [3]int // a 的零值为 [0, 0, 0]
结构体的零值是一个具有相同类型且所有字段的零值的结构体。
type Person struct {
Name string
Age int
Married bool
}
var p Person // p 的零值为 { "", 0, false }
所有类型的指针的零值都是 nil
。
var p *int // p 的零值为 nil
所有接口的零值都是 nil
。
var i io.Reader // i 的零值为 nil
所有函数的零值都是 nil
。
var f func() // f 的零值为 nil
以上就是 Golang 中各种数据类型的零值。在编写程序时,一定要注意使用未初始化的变量。否则,它们将被赋予它们的零值,可能会导致不必要的错误。