零值就是变量没有做初始化时系统默认设置的值。
在Go语言中,如果你声明了一个变量但是没有对它进行赋值操作,那么这个变量就会有一个该类型的默认零值。
每个类型对应零值如下表格
| 类型 | 零值 |
| 数值 | 0 |
| 字符串 | 空字符串 |
| 布尔 | false |
| 指针 | nil |
| 引用类型(切片/映射/通道/接口/函数) 被声明为零值的引用类型的变量 | 引用的底层数据结构会被初始化为对应的零值 nil |
package main
import "fmt"
func main() {
// 数值零值为0
var b int
fmt.Println(b)
// 字符串零值为空字符串
var a string
fmt.Println(a)
// 布尔零值为 false
var c bool
fmt.Println(c)
// 指针零值为 nil
var d *int
fmt.Println(d)
}

其中nil参考Go语言之nil_WonderChaos的博客-优快云博客
参考
[1]《Go语言实战》——威廉•肯尼迪
本文介绍了Go语言中的零值概念,当声明但未赋值的变量会获得其类型的默认零值,例如数值为0,字符串为空,布尔为false,指针为nil。通过示例代码展示了这些零值的使用,并提供了对nil的理解。
3万+

被折叠的 条评论
为什么被折叠?



