Golang 中的 select 语句有什么作用?

在 Go 语言中,select 语句用于处理多个 channel 的发送和接收操作。通过 select 语句可以实现在多个 channel 上等待,哪个 channel 先就绪就处理哪个。

select 语句的基本语法如下:

select {
case <-ch1:
    // 从 ch1 中接收到数据
case x := <-ch2:
    // 从 ch2 中接收到数据,并存储到变量 x 中
case ch3 <- y:
    // 向 ch3 中发送数据 y
default:
    // 所有 channel 都没有就绪
}