零值 和 Nil 问题

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