通道
两种配合方式:
- range
- select
range 方式
1 | //关闭之后会跳出循环 |
select 方式
1 | for { |
Close(ch)含义
给通道写了一个结束标识值,接收到这个值表示通道已经关闭,有这个值就不能再写入了,还可以继续读取,读取到这个值的时候就表示已经读取完了,通道为空了。
注意点
从一个 nil channel 中接收数据会一直被 block。
从一个被 close 的 channel 中接收数据不会被阻塞,而是立即返回,接收完已发送的数据后会返回元素类型的零值(zero value)。
1 | //如果OK 是false,表明接收的x是产生的零值,这个channel被关闭了或者为空。 |