1.对于指针来说,nil表示不指向任何有效的地址
var ptr *int
if ptr == nil {
fmt.Println("Pointer is nil")
}
2.对于slice,map,channel,nil表示未分配内存或未初始化
var slice []int
if slice == nil {
fmt.Println("Slice is nil")
}
var m map[string]int
if m == nil {
fmt.Println("Map is nil")
}
var ch chan int
if ch == nil {
fmt.Println("Channel is nil")
}
3.对于interface,nil表示接口不包含任何具体的值
var intf interface{}
if intf == nil {
fmt.Println("Interface is nil")
}
4.对于func,nil表示函数没有被赋值,为未初始化的状态
var fn func()
if fn == nil {
fmt.Println("Function is nil")
}