9.10 Channel 型

一个通道保存了特定类型的元素值,可以被跨越多个并发执行的函数访问。一个函数可以从通道 "发送" 或 "接收" 值。

一个 chan T 类型指定了其元素类型 T 和可选的 "方向"。<- 运算符指定通道方向,发送 (chan<-) 或接收 (<-chan)。如果没有给定方向,给定 chan 类型的通道是双向的。也就是说,它们可以被读取和写入。

chan 类型的零值是 nil。

以下类型定义创建一个新的命名 chan 类型:

type IntBuf chan int

IntBuf 类型定义了一组以 int 作为其元素类型的双向通道。相比之下,chan<- int 和 <-chan int 分别表示仅发送和仅接收 int 值的通道。

var sender chan<- int64    // 发件人是 Chan<- int64 类型的变量。发件人是只写的
var receiver <-chan float32 // 接收器是 <-chan float32 类型的变量。接收器是只读的

最后更新于