跳转至

通道

通道的值和类型

和数组、切片以及映射类型一样,每个通道类型也只有一个元素类型。一个通道只能传送它的元素类型的值。 通道可以是双向的,也可以是单向的: - 字面形式chan T表示一个元素类型为T的双向通道类型。编译器允许从次类型的值中接收和向此类型的值中发送数据。 - 字面形式chan<- T表示一个元素类型为T的单向发送通道类型。编译器不允许从此类型的值中接收数据。 - 字面形式<-chan T表示一个元素类型为T的单向接收通道类型。编译器不允许从此类型的之中发送数据。

通道值得比较

所有通道类型均为可比较类型

通道的操作

Go中有五种通道相关的操作。 1. 调用内置函数close来关闭一个通道 2. 向通道ch发送一个值v 3. 从通道ch接收一个值 4. 查询一个通道的容量 5. 查询通道的长度

通道可以分为三类: 1. 零值通道 2. 非零值但已关闭的通道 3. 非零值并且尚未关闭的通道