草庐IT

somechannel

全部标签

go - Go select 语句中的条件案例

我正在尝试在Go中编写一个包含可选超时的选择,如下所示:done:=falsefor!done{iftimeout>0{select{casevalue:=也就是说,如果channel上没有任何待处理,并且我没有设置超时,我会退出。如果设置了超时但没有可用的内容,那么我会等待超时或channel上有可用的内容。我很想将它组合成一个单一的选择,但我看不出我该怎么做。有什么想法吗? 最佳答案 以下是我将如何实现您想要的:funcfoo(){iftimeout>0{timer:=time.NewTimer(timeout)defertim

go - Go select 语句中的条件案例

我正在尝试在Go中编写一个包含可选超时的选择,如下所示:done:=falsefor!done{iftimeout>0{select{casevalue:=也就是说,如果channel上没有任何待处理,并且我没有设置超时,我会退出。如果设置了超时但没有可用的内容,那么我会等待超时或channel上有可用的内容。我很想将它组合成一个单一的选择,但我看不出我该怎么做。有什么想法吗? 最佳答案 以下是我将如何实现您想要的:funcfoo(){iftimeout>0{timer:=time.NewTimer(timeout)defertim