问题是关于从 once of the standard go library中提取的以下片段中的pipe.go变量的用法

for once := true; once || len(b) > 0; once = false {
    select {
    case p.wrCh <- b:
        nw := <-p.rdCh
        b = b[nw:]
        n += nw
    case <-p.done:
        return n, p.writeCloseError()
    }
}

我的理解是,只要len(b) > 0,循环就不会终止,并且循环将至少执行一次。

那为什么不写
for len(b) > 0 { ... }

最佳答案

看起来once正在用于创建do ... while(condition);循环,而Go则没有。

关于go - 以下代码段中〜once〜变量的含义是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49683124/

10-12 06:29