📜  Golang 中的零值(1)

📅  最后修改于: 2023-12-03 15:01:02.207000             🧑  作者: Mango

Golang 中的零值

在 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 中各种数据类型的零值。在编写程序时,一定要注意使用未初始化的变量。否则,它们将被赋予它们的零值,可能会导致不必要的错误。