而指针,函数,interface,slice,channel和map的零值都是nil
可以看看下面代码的例子。 nil是 指针,函数,接口,slice,channel,map的零值。
package main
import (
"fmt"
// "reflect"
)
type BB struct {
}
func main(){
var a interface{}
fmt.Println(a)
var b *BB
fmt.Println(b)
a = b
fmt.Println(a)
if a != nil {
fmt.Println("空接口赋值之后其值为nil, 但是其本身不是nil哟.")
fmt.Println("所以打印的时候是nil, 判等的时候并不是nil.")
fmt.Println(a)
}
}
有疑问加站长微信联系(非本文作者)