读取通道作为if语句的条件是一种好习惯吗?

时间:2015-08-06 13:32:07

标签: go

我已经看到了一些例子:

type data struct {
    request chan string
    response chan bool
}

并像这样使用:

db := &data{make(chan string), make(chan bool)}
if db.request<- "boo"; !<-db.response {
    do something ...
}

&#34;民意调查&#34;从响应通道不阻止?在信道的另一端可以响应之前,有时还会评估if条件是否有效?这种模式是否在标准库中的任何位置使用?

1 个答案:

答案 0 :(得分:3)

您不会轮询任何内容,是的,频道接收操作始终可以阻止。

<-db.response是正常的接收操作。 db.response陈必须是chan bool!是逻辑&#34;不是&#34;}一元算子。