​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,是一系列动作,所以不能只是在定义的时候就去分配。

0
2
ccmouse
回复
FrankieLee
是的。它里面肯定有个指针
2019-08-11
共2条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程