chan 赋值的问题

来源:11-4 用select进行调度

慕丝8651821

2018-08-18

func main() 中, w := createWorker(0) , createWorker() 的返回值是个chan c , 这里把 chan c 赋值给了 w ,这样w 和 c 就是同一个chan 了吗? 如果不是,那 worker() 中 是对 chan c 进行 range, 而 main() 中是 向chan w 中送数据,数据怎么会进到 chan c 中了呢?

写回答

1回答

ccmouse

2018-08-19

的确是同一个channel。channel是可以给来给去的。只要拿了这个channel就可以发送接收数据。
可能我之前说过值传递的问题。channel的肚子里其实有一个到具体实现的指针,所以虽然作为值传来传去,但都是同一个channel

0
1
慕丝8651821
非常感谢!
2018-08-22
共1条回复

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

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

5995 学习 · 1909 问题

查看课程