以下代码片段中的 ~once~ 变量是什么意思?
What the meaning of the ~once~ variable in the following code snippet?
问题是关于从 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 { ... }
看起来 once
被用来制作一个 do ... while(condition);
循环,Go 没有。
问题是关于从 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 { ... }
看起来 once
被用来制作一个 do ... while(condition);
循环,Go 没有。