Go 如何运行函数直到返回预期值?
我想运行一个函数,直到它返回0Go 如何运行函数直到返回预期值?,go,Go,我想运行一个函数,直到它返回0 value, _ := FuncX() if value != 0 { value, _ := FuncX() if(value != 0) { value, _ := FuncX() if(value != 0) .... } } 这似乎是一种非常丑陋的方式。有什
value, _ := FuncX()
if value != 0 {
value, _ := FuncX()
if(value != 0) {
value, _ := FuncX()
if(value != 0) ....
}
}
这似乎是一种非常丑陋的方式。有什么更好的方法吗?您可以使用如下循环:
for {
value, _ := FuncX()
if value == 0 {
break
}
}
value, _ := FuncX()
for value == 0 {
value, _ = FuncX() // note using the = not :=
}
一个比其他人提供的更复杂的循环头,尽管在循环体中没有任何内容可能会触发编码器OCD
for value,_ := FuncX(); value != 0; value,_ = FuncX() {
}
事实上,这通常是我在围棋中逐行读取文件的方式
// Assume we have some bufio.Reader named buf already created
for line,err := buf.ReadString('\n'); err == nil; line,err = buf.ReadString('\n') {
// Do stuff with the line.
}
如果您需要line
或err
在循环之外,您只需预先取消它们,并将:=
替换为=