通道
通道的值和类型
和数组、切片以及映射类型一样,每个通道类型也只有一个元素类型。一个通道只能传送它的元素类型的值。
通道可以是双向的,也可以是单向的:
- 字面形式chan T
表示一个元素类型为T
的双向通道类型。编译器允许从次类型的值中接收和向此类型的值中发送数据。
- 字面形式chan<- T
表示一个元素类型为T
的单向发送通道类型。编译器不允许从此类型的值中接收数据。
- 字面形式<-chan T
表示一个元素类型为T
的单向接收通道类型。编译器不允许从此类型的之中发送数据。
通道值得比较
所有通道类型均为可比较类型
通道的操作
Go中有五种通道相关的操作。
1. 调用内置函数close
来关闭一个通道
2. 向通道ch
发送一个值v
3. 从通道ch
接收一个值
4. 查询一个通道的容量
5. 查询通道的长度
通道可以分为三类: 1. 零值通道 2. 非零值但已关闭的通道 3. 非零值并且尚未关闭的通道