问题是关于从pipe.go
of the standard go library提取的以下代码段中的使用once
变量
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 { ... }
答案 0 :(得分:3)
看起来once
用于制作一个do ... while(condition);
循环,Go没有。