通道类型的“未初始化”字段或变量的所有通道类型的零值为
nil。因此,让我们研究一下
nil通道或通道上的 *** 作。
值得 在一篇文章中收集 渠道公理 :
nil通道阻塞的原因:如果一个通道值为
nil,则没有人引用它,因此没有人会准备好从中接收(我们要发送的内容);或发送任何内容(我们会从中收到什么)。
您可以在Dave Cheney:Channel Axioms中阅读更多的推理和更多详细信息。
为了完整性:
- 关闭一个
nil
频道将会引起一个运行时恐慌(就像闭一个已经封闭的通道)。 - 长度和容量一个的
nil
信道是0
; 根据nil
具有0
长度和容量的切片和地图。
理由:“关闭”是一种状态,但是一个
nil通道不能具有状态(只有一个
nil通道,“关闭”通道没有一个通道,“非关闭”通道没有一个通道)。而且没有元素在
nil通道中排队(因此len
= 0),并且它没有缓冲区容量(因此cap = 0)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)