chan 的值或者状态会有很多种情况,一些操作可能会出现panic异常场景,如下表:

接收/发送nil channel有值 channel没值 channel满 channel
<- ch (发送数据)阻塞发送成功发送成功阻塞
ch <- (接收数据)阻塞接收成功阻塞接收成功
close (ch) 关闭 channelpanic关闭成功关闭成功关闭成功