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

我见过几个这样的例子:


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 ...

}

来自响应通道的“轮询”不会阻塞吗?有时也不会在通道的另一端响应之前评估 if 条件吗?这种模式是否在标准库中的任何地方使用?


当年话下
浏览 197回答 1
1回答

四季花海

你没有轮询任何东西,是的,通道接收操作总是会阻塞。<-db.response是正常的接收操作。该db.response议员必须是chan bool,而且!是合乎逻辑的“而不是”一元运算符。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go