猿问

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

我在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)

        }


红颜莎娜
浏览 644回答 2
2回答

天涯尽头无女友

所述default的情况下select声明旨在提供非阻塞I / O信道读取和写入。default每当任何情况下的任何通道都未准备好读取/写入时,就执行该情况下的代码。因此,在您的情况下,default如果退出通道无话可说,则执行该块。您可以简单地删除默认大小写,它将阻止该quit_status := <-quit大小写,直到quit..中的值可用为止。在这种情况下,这可能是您想要的。如果要在select语句之后立即继续执行代码,则应在单独的goroutine中运行此select语句:go func() {&nbsp; &nbsp; select {&nbsp; &nbsp; case quit_status := <-quit:&nbsp; &nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; }}()// Execution continues here immediately.

繁星coding

正如@StephenWeinberg指出的那样,go中没有pass语句。只需简单地放置任何东西,以防频道碰到某些东西。select {&nbsp; &nbsp; case <-ch:&nbsp; &nbsp; &nbsp; &nbsp; // do something&nbsp; &nbsp; case <-time.After(2*time.Second):&nbsp; &nbsp; &nbsp; &nbsp; // timeout&nbsp; &nbsp; default:&nbsp; &nbsp; &nbsp; &nbsp; // do nothing aka pass}
随时随地看视频慕课网APP

相关分类

Go
我要回答