当前位置:网站首页 > 技术博客 > 正文

select语句总结



Go 语言条件语句 Go 语言条件语句

select 是 Go 中的一个控制结构,类似于 switch 语句。

select 语句只能用于通道操作,每个 case 必须是一个通道操作,要么是发送要么是接收。

select 语句会监听所有指定的通道上的操作,一旦其中一个通道准备好就会执行相应的代码块。

如果多个通道都准备好,那么 select 语句会随机选择一个通道执行。如果所有通道都没有准备好,那么执行 default 块中的代码。

Go 编程语言中 select 语句的语法如下:

以下描述了 select 语句的语法:

  • 每个 case 都必须是一个通道
  • 所有 channel 表达式都会被求值
  • 所有被发送的表达式都会被求值
  • 如果任意某个通道可以进行,它就执行,其他被忽略。
  • 如果有多个 case 都可以运行,select 会随机公平地选出一个执行,其他不会执行。
    否则:
    1. 如果有 default 子句,则执行该语句。
    2. 如果没有 default 子句,select 将阻塞,直到某个通道可以运行;Go 不会重新对 channel 或值进行求值。

select 语句应用演示:

以上代码执行结果为:

 received one received two 

以上实例中,我们创建了两个通道 c1 和 c2。

select 语句等待两个通道的数据。如果接收到 c1 的数据,就会打印 "received one";如果接收到 c2 的数据,就会打印 "received two"。

以下实例中,我们定义了两个通道,并启动了两个协程(Goroutine)从这两个通道中获取数据。在 main 函数中,我们使用 select 语句在这两个通道中进行非阻塞的选择,如果两个通道都没有可用的数据,就执行 default 子句中的语句。

以下实例执行后会不断地从两个通道中获取到的数据,当两个通道都没有可用的数据时,会输出 "no message received"。

Go 语言条件语句 Go 语言条件语句

  • 上一篇: php怎么创建
  • 下一篇: oracle10g启动crs
  • 版权声明


    相关文章:

  • php怎么创建2025-01-02 18:01:04
  • oracle中rownum是什么2025-01-02 18:01:04
  • 图码是什么意思2025-01-02 18:01:04
  • 串口调试助手使用说明2025-01-02 18:01:04
  • 左移右移运算符号2025-01-02 18:01:04
  • oracle10g启动crs2025-01-02 18:01:04
  • sql框架下载2025-01-02 18:01:04
  • 命令模式的缺点2025-01-02 18:01:04
  • 密码学内容2025-01-02 18:01:04
  • css按钮样式代码2025-01-02 18:01:04