生产者用一些值填充 channel 并关闭它。 在消费者方面,我想将所有值相加并将循环留在最后。我的解决方案如下:
total := 0
for {
v, ok := <- ch
if !ok { break }
total += v
}
有没有更优雅的方式?
最佳答案
只要生产者关闭 channel ,for/range 循环就会起作用。
total := 0
for v := range ch {
total += v
}
关于go - 在 Go 中阅读直到 channel 结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19100252/