golang channel tips

匿名 (未验证) 提交于 2019-12-03 00:39:02

1. 读nil的channel是永远阻塞的。关闭nil的channel会造成panic。


2. closed channel的行为:

向close的channel发消息会panic。因为go建议向channel发送数据的人负责close channel。

如果close的channel还有数据,仍然可以读取。

读取close的并且空的channel,会马上返回零值(注意chan int会返回0)。


3. 可以对channel使用range。这样不用写select,显得代码简洁。


4. ok=false表示channel空并且close了 (注意不是“或者”)。

参考:

https://stackoverflow.com/questions/34897843/why-does-go-panic-on-writing-to-a-closed-channel

golang channel tips

原文:https://www.cnblogs.com/dearplain/p/9246558.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!