零值 和 Nil 有什么区别 ??
简单的说零值就是一个类型未经任何赋值的初始值, 比如 int类型的零值为0, bool类型的零值为false,*int的零值为nil。
而nil是一个特殊值,表示指针或者引用类型的一种值,比如 []byte=nil, *int32=nil, 在编译器看来其实nil就是0。
#1
更多评论
这么来说吧,go语言里面所有未经过初始化的变量,编译器都会赋予“零值”,比如声明一个var num int,那么num变量会被赋予“零值”->0,不同类型的零值是不一样的,而bool类型的零值为false,而指针,引用类型,对象类型的零值则为nil.
#3