概述

当一个变量应用 var 进行申明后并未进行初始化 (变量前面没有赋值符 =) 操作,会默认调配一个零值 (zero value)。

不同类型对应的零值

类型零值
boolfalse
int0
float0
string""
byte (uint8)0
pointernil
funcnil
interfacenil
slicenil
channelnil
mapnil

例子

bool 类型

package mainimport "fmt"func main() {    var b bool    fmt.Printf("b = %t\n", b)}// $ go run main.go// 输入如下/**  b = false*/

byte 类型

package mainimport "fmt"func main() {    var b byte    fmt.Printf("b = %c\n", b)}// $ go run main.go// 输入如下/**  b =*/

func 类型

package mainimport "fmt"func main() {    var f func()    fmt.Printf("f = %v\n", f)}// $ go run main.go// 输入如下/**  f = <nil>*/

channel 类型

package mainimport "fmt"func main() {    var ch chan bool    fmt.Printf("ch = %v\n", ch)}// $ go run main.go// 输入如下/**  ch = <nil>*/

分割我