python - Go - Python 的 "pass"相当于什么?

标签 python select go

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

最佳答案

default select 中的案例语句旨在为 channel 读取和写入提供非阻塞 I/O。 default 中的代码每当任何情况下的 channel 都没有准备好读取/写入时,都会执行 case。

所以在你的情况下,default如果退出 channel 无话可说,则执行 block 。 您可以简单地删除默认情况,它会阻止 quit_status := <-quit大小写,直到 quit 中的值可用..这可能是你在这种情况下所追求的。

如果你想在 select 语句之后立即继续执行代码,你应该在一个单独的 goroutine 中运行这个 select 语句:

go func() {
    select {
    case quit_status := <-quit:
        ...

    }
}()

// Execution continues here immediately.

关于python - Go - Python 的 "pass"相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12452254/

相关文章:

dictionary - 在同步 map 中检测到数据争用情况-Golang

Python Pillow HSV 颜色选择;使其更加具体

html - 是否有允许在桌面上使用自定义样式选项但在移动设备上具有 native 行为的 Dropdown 组件?

jquery - 如何使用 JQuery 查找 DOM 选择对象上的选定索引?

MySQL 查询在 phpmyadmin 中不起作用

Go:将 unsafe.Pointer 转换为函数指针,反之亦然

postgresql - 如何限制json可以容纳的字段数?

python - 是否有单一的匹配和替换功能?

python - 如何从预填充对象的表单中排除字段

python - django-admin makemessages : how does it work with txt, xml 和其他文件?