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

Go-Python的“ pass”等效于什么?

Go-Python的“ pass”等效于什么?

Go
红颜莎娜 2021-05-07 15:19:10
我在select语句中有一个默认原因,我不想执行任何操作,只是继续,但是将行留空会阻止该语句中的任何事情发生        select {        case quit_status := <-quit:            if quit_status == true {                fmt.Printf("********************* GOROUTINE [%d] Received QUIT MSG\n", id)                return            }        default:            fmt.Printf("GOROUTINE [%d] step: %d, NO QUIT MSG\n", id, i)        }
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

所述default的情况下select声明旨在提供非阻塞I / O信道读取和写入。default每当任何情况下的任何通道都未准备好读取/写入时,就执行该情况下的代码。


因此,在您的情况下,default如果退出通道无话可说,则执行该块。您可以简单地删除默认大小写,它将阻止该quit_status := <-quit大小写,直到quit..中的值可用为止。在这种情况下,这可能是您想要的。


如果要在select语句之后立即继续执行代码,则应在单独的goroutine中运行此select语句:


go func() {

    select {

    case quit_status := <-quit:

        ...


    }

}()


// Execution continues here immediately.


查看完整回答
反对 回复 2021-05-17
?
繁星coding

TA贡献1797条经验 获得超4个赞

正如@StephenWeinberg指出的那样,go中没有pass语句。只需简单地放置任何东西,以防频道碰到某些东西。


select {

    case <-ch:

        // do something

    case <-time.After(2*time.Second):

        // timeout

    default:

        // do nothing aka pass

}


查看完整回答
反对 回复 2021-05-17
  • 2 回答
  • 0 关注
  • 640 浏览
慕课专栏
更多

添加回答

举报

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