var x chan int 和 x :=make(chan int) 的问题?
来源:11-1 channel

弱弱小乖乖
2018-03-26
var x chan int 和 x :=make(chan int),老师说前者是nil,所以要用后者,为什么呢?这两种定义方式怎么理解? 为什么前者打印出来是nil,后者打印出来类似0xc042044060 ?
写回答
1回答
-
ccmouse
2018-03-29
用var x chan int只是定义了一个具有初始值的变量,go语言里也叫零值。比如整数是0,channel就是nil。而用make是去分配一个,然后赋值给变量x,编译器判断出x的类型是channel,是一系列动作,所以不能只是在定义的时候就去分配。
022019-08-11
相似问题