Golang–Channels(通道)
一. 通道创建
以最简单方式调用make函数创建的是一个无缓存的channel,但是我们也可以指定第二个整型参数,对应channel的容量。如果channel的容量大于零,那么该channel就是带缓存 channel。
channel 容量 > 0 即带有缓冲的通道
1 | // 创建无缓冲的的通道 |
二. 通道发送和接收
1 | // 发送数据到通道 |
三. 通道的箭头使用, 注意点。
- chan <- int 只发送int 的channel, 只能发送不能接收。
- <- chan int 表示一个只接收int 的int channel, 只能接收不能发送。
- 箭头 <- 和关键字chan 的相对位置表明了channel 的方向。
- 这种限制将在编译期检测。