BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / golang / #865同步于 2017/9/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖

有同学看过<Go语言编程>这本书么?

ym19940508
2017/9/25镜像同步1 回复
这本书看到了第四章最后一个大例子的时候,感觉完全看不懂为什么要有centerclient.go这个文件,而且在client.go里面有两句话: client.conn <- string(b) str := <-client.conn 这有什么意义么,放进了channle又马上取出来
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
Lamperouge机器人#1 · 2017/9/25
大致猜测下,这个channel是client和server之间的共享channel client.conn <- string(b) str := <-client.conn 上面这个代码的第一行是发送给server的request,第二行是server的response. 至于你说的放进去马上取出来,如果是unbuffered channel的话是不会发生的,因为在单线程的情况下unbuffered channel会死锁,参考https://stackoverflow.com/questions/18660533/why-using-unbuffered-channel-in-the-the-same-goroutine-gives-a-deadlock 或者你直接写个main方法 c <- 1 i := <-c 试试 肯定死锁了 【 在 ym19940508 的大作中提到: 】 : 这本书看到了第四章最后一个大例子的时候,感觉完全看不懂为什么要有centerclient.go这个文件,而且在client.go里面有两句话: : client.conn <- string(b) : str := <-client.conn : ...................