• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Golang > Go语言中Select语句用法实例

Go语言中Select语句用法实例

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了go语言 select,go语言实例,c语言go to语句,go语言,go语言环境搭建等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了Go语言中Select语句用法。分享给大家供大家参考。具体分析如下:

select 语句使得一个 goroutine 在多个通讯操作上等待。
select 会阻塞,直到条件分支中的某个可以继续执行,这时就会执行那个条件分支。当多个都准备好的时候,会随机选择一个。
import "fmt"
func fibonacci(c, quit chan int) {
        x, y := 1, 1
        for {
                select {
                case c <- x:
                          x, y = y, x + y
                case <-quit:
   fmt.Println("quit")
                        return
                }
        }
}
func main() {
        c := make(chan int)
 quit := make(chan int)
 go func() {
  for i := 0; i < 10; i++ {
   fmt.Println(<-c)
  }
  quit <- 0
 }()
 fibonacci(c, quit)
}</div>

默认选择

当 select 中的其他条件分支都没有准备好的时候,default 分支会被执行。

为了非阻塞的发送或者接收,可使用 default 分支:

select {
case i := <-c:
// use i
default:
// receiving from c would block
}
import (
 "fmt"
 "time"
)
func main() {
        tick := time.Tick(1e8)
        boom := time.After(5e8)
        for {
                select {
                case <-tick:
                        fmt.Println("tick.")
                case <-boom:
                        fmt.Println("BOOM!")
                        return
                default:
                        fmt.Println("    .")
                        time.Sleep(5e7)
                }
        }
}</div>

希望本文所述对大家的Go语言程序设计有所帮助。

</div>

您可能想查找下面的文章:

  • 简介Go语言中的select语句的用法
  • Go语言中Select语句用法实例

相关文章

  • 学习GO编程必备知识汇总
  • 解决Golang在Web开发时前端莫名出现的空白换行
  • Go语言中的内存布局详解
  • 深入解析Go语言的io.ioutil标准库使用
  • Go语言获取数组长度的方法
  • Go实现比较时间大小
  • 深入解析Go语言编程中的递归使用
  • Go语言操作mysql数据库简单例子
  • 如何使用Go语言实现远程执行命令
  • Go语言判断指定文件是否存在的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Go语言计算两个经度和纬度之间距离的方法
    • 深入解析Go语言中for循环的写法
    • golang实现http服务器处理静态文件示例
    • Golang使用zlib压缩和解压缩字符串
    • Golang极简入门教程(三):并发支持
    • golang简单位运算示例
    • 从Node.js 转到 Go平台
    • go语言使用scp的方法实例分析
    • go语言base64用法实例
    • Golang排列组合算法问题之全排列实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有