Golang 中的 nil 是用于表示指针为 null 的一个预定义的常量。
它的主要特点有:
一、 定义
nil 定义在 Golang 的 predeclared 常量中。
它位于 constant 包中。
const nil = nil
二、 类型
nil 是一个特殊类型,可以赋值给任何指针类型。
var p *int = nil
var pp **int = nil
三、使用
用 nil 初始化指针变量:
var p *int // p 的值为 nil
可以判断指针是否为 nil :
if p == nil {
// ...
}
四、 作用
表示指针为 null,指向不存在的内存地址。
用以解引用的指针为空。
五、值
nil 的数值是0。
总的来说,Go 中的 nil :
- 是一个预定义的常量
- 位于 constant 包内
- 是一个特殊的类型
- 可以赋值给任何指针类型
- 表示指针为 null
- 其值是 0
nil 常量实现了指针为空的概念。
它可以保证指针安全。
比如:
if p != nil {
// 解引用 p
}
可以判断指针是否为空。