为了账号安全,请及时绑定邮箱和手机立即绑定

Go 的 select 语句案例中的多个代码

Go 的 select 语句案例中的多个代码

收到一只叮咚 2022-12-19 10:51:27
当我运行以下 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")    }}
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

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

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


查看完整回答
反对 回复 2022-12-19
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信