到目前为止,我所看到的所有示例都涉及阻塞(通过<-chan运算符)获取结果。
<-chan
我当前的方法涉及传递指向结构的指针:
type goresult struct { result resultType; finished bool; }
goroutine完成时会写的内容。然后,finished只要方便就可以进行检查。您有更好的选择吗?
finished
我真正想要的是Qt风格的信号槽系统。我有一个预感,解决方案看起来几乎是微不足道的(chan有 很多 未开发的潜力),但是我对这种语言还不十分了解。
chan
您可以使用“逗号,可以”模式(请参阅其页面上的“ 有效执行 ”):
foo := <- ch; // This blocks. foo, ok := <- ch; // This returns immediately.