📌  相关文章
📜  golang 默认值 - Go 编程语言(1)

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

Golang 默认值 - Go 编程语言

在 Golang 中,每个类型都有一个默认值。这个默认值在类型被定义的时候就已经确定了。在变量没有被显式的赋值的情况下,Golang 会使用该类型的默认值进行初始化。

数值类型的默认值

下面是 Golang 数值类型的默认值:

| 类型 | 默认值 | | ------ | ------ | | uint8 | 0 | | uint16 | 0 | | uint32 | 0 | | uint64 | 0 | | int8 | 0 | | int16 | 0 | | int32 | 0 | | int64 | 0 | | float32| 0 | | float64| 0 | | complex64 | 0+0i | | complex128 | 0+0i | | byte | 0 | | rune | 0 |

需要注意的是,Go 中的 byte 实际上是 uint8 的别名,而 rune 是 int32 的别名。

布尔类型的默认值

Golang 中的布尔类型只有两个可能的值:true 和 false。因此,布尔类型的默认值是 false。

字符串类型的默认值

Golang 中的字符串类型的默认值是空字符串 ""。

数组类型的默认值

Golang 中的数组类型每个元素的默认值与元素的类型有关。例如,对于长度为 n 的 int 数组,每个元素的默认值都是 0。

结构体类型的默认值

结构体类型的默认值与结构体成员的类型有关。例如,对于如下的结构体类型:

type Person struct {
    Name string
    Age  int
}

Person 结构体类型的默认值是一个可以直接使用的“零值”:Person{Name:"", Age:0}。

指针类型的默认值

Golang 中的指针类型的默认值是 nil。当指针类型的变量被定义时,它的值会被自动初始化为 nil,即一个指向空地址的指针。

函数类型的默认值

Golang 中的函数类型的默认值也是 nil。

接口类型的默认值

与指针类型和函数类型一样,Golang 中的接口类型的默认值也是 nil。

总结

Golang 中每个类型的默认值在该类型被定义时就已经确定了,对于基本类型的默认值是固定的,对于复杂类型的默认值则与类型的成员数据类型有关。在变量没有被显式的赋值的情况下,Golang 会使用该类型的默认值进行初始化。