对不同状态的channel操作会出现的情况
                    目录
                    
                
                
            
                    警告
                
                
                        本文最后更新于 2021-04-15,文中内容可能已过时。
                对 channel Read 操作
channel 状态为 nil: 阻塞
 | 
 | 
channel 状态为 打开且非空: 输出值
 | 
 | 
channel 状态为 打开但空: 阻塞
 | 
 | 
channel 状态为 关闭: 输出 默认值 和 false
 | 
 | 
channel 状态为 只写: 编译错误
 | 
 | 
对 channel Write 操作
channel 状态为 nil: 阻塞
 | 
 | 
channel 状态为 打开且满: 阻塞
 | 
 | 
chanel 状态为 打开且不满: 写入值
 | 
 | 
channel 状态为 关闭: panic
 | 
 | 
channel 状态为只读: 编译错误
 | 
 | 
对 channel Close 操作
channel 状态为 nil: panic
 | 
 | 
channel 状态为 打开且非空: 先读取值,后默认值
 | 
 | 
channel 状态为 打开但空: 默认值
 | 
 | 
channel 状态为 关闭
 | 
 | 
channel 状态为 只读
 | 
 | 
总结
| 操作 | Channel状态 | 结果 | 
|---|---|---|
| Read | nil | 阻塞 | 
| 打开且非空 | 输出值 | |
| 打开但空 | 阻塞 | |
| 关闭 | 默认值, false | |
| 只写 | 编译错误 | |
| Write | nil | 阻塞 | 
| 打开且满 | 阻塞 | |
| 打开且不满 | 写入值 | |
| 关闭 | panic | |
| 状态为只读 | 编译错误 | |
| Close | nil | panic | 
| 打开且非空 | 先读取值,后默认值 | |
| 打开且空 | 默认值 | |
| 关闭 | panic | |
| 只读 | 编译错误 |