数据通道(channel)是有类型的队列,它用于协程(goroutine)之间以线程安全的的方式通信。
通道的零值是nil
。
通道的基本用法:
package main
import (
"fmt"
)
func main() {
// 创建一个容量为1,无缓冲的,交换int数据的channel
ch := make(chan int)
// 新起一个协程,将数值3通过channel传递出去
go func() { ch <- 3 }()
// 从channel中读取数据
// 下面的操作会等待上面的协程发送一个值
n := <-ch
fmt.Printf("n: %d\n", n)
}
👉 点击此处 👈 亲自在编程操场执行上述代码。