每天进步一点点!
1. 目前Go语言中并没有提供一个不对通道进行读取操作就能判断通道是否被关闭的方法。不能简单的通过len(ch)操作来判断通道是否被关闭。
2. 对一个只接收通道执行close也是不允许的,因为默认通道的关闭操作应该由发送方来完成。
3. 在函数传参及任何赋值操作中全向通道(正常通道)可以转换为单向通道,但是无法反向转换。
4. 关闭后的通道有以下特点:
- 对一个关闭的通道再发送值就会导致 panic。
- 关闭一个已经关闭的通道会导致 panic。
- 对一个关闭的通道进行接收会一直获取值直到通道为空。
- 对一个关闭的并且没有值的通道执行接收操作会得到对应类型的零值。