采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
var x chan int 和 x :=make(chan int),老师说前者是nil,所以要用后者,为什么呢?这两种定义方式怎么理解? 为什么前者打印出来是nil,后者打印出来类似0xc042044060 ?
用var x chan int只是定义了一个具有初始值的变量,go语言里也叫零值。比如整数是0,channel就是nil。而用make是去分配一个,然后赋值给变量x,编译器判断出x的类型是channel,是一系列动作,所以不能只是在定义的时候就去分配。
老师,这里个打印结果是否也变相说明了,channel本身实际上是一个指针呢?感觉这个0xc042044060就是x这个变量自身的地址,这个地址里应该有一个指向真实channel物理地址的一个指针。
是的。它里面肯定有个指针
登录后可查看更多问答,登录/注册
语法+分布式爬虫实战 为转型工程师量身打造
3.7k 14
713 1
2.0k 1
1.1k 12