将通道变量设置为nil只需将该变量设置为nil,同时使它之前提到的通道保持初始化状态.
这与将任何其他变量设置为零是一样的.
如果有对该频道的其他引用,您仍然可以访问它.如果没有,它将被垃圾收集.
此外,nil
通道与闭合通道在写入或读取时的行为也不同.摘自戴夫·切尼(Dave Cheney)的博客帖子"Channel Axioms"(Channel Axioms),我推荐全文阅读:
- 发送到零通道将永远阻塞
- 来自零信道的接收将永远阻塞
- 发送到关闭通道的人惊慌失措
- 来自封闭通道的接收立即返回零值