登录
首页 >  Golang >  Go问答

在 Go 中使用 select 语句来处理多个代码

来源:stackoverflow

时间:2024-03-11 19:12:19 200浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《在 Go 中使用 select 语句来处理多个代码》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

当我运行以下 go 1.18 代码时,我希望看到两条消息被重复打印到标准输出,一个接一个。但是,我只看到“ping”被重复打印。为什么? select 语句必须执行这两种情况,因为有两个不同的通道操作,并且通道本身不同。

for {
    select {
    case <-time.NewTicker(time.Millisecond * 400).C:
        fmt.Println("ping")
    case <-time.NewTicker(time.Millisecond * 600).C:
        fmt.Println("pong")
    }
}

正确答案


您正在案例中创建一个新的代码。 select 语句首先评估 case,这意味着它创建两个计时器,在较短的一个计时器计时后,它创建另一对计时器。下次,将再次选择较短的一个。

在 for 循环外部创建两个代码。

本篇关于《在 Go 中使用 select 语句来处理多个代码》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>