[英]How do I run a function until the expected value is returned?
我想運行一個函數,直到它返回0。
value, _ := FuncX()
if value != 0 {
value, _ := FuncX()
if(value != 0) {
value, _ := FuncX()
if(value != 0) ....
}
}
似乎是一種非常丑陋的方式。 有什么更好的辦法?
盡管循環主體中沒有任何內容,可能會觸發編碼器OCD,但循環頭比其他人提供的更為復雜。
for value,_ := FuncX(); value != 0; value,_ = FuncX() {
}
實際上,這通常是我在Go中逐行讀取文件的方式
// 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
則只需預先聲明它們,然后將:=
替換為=
。
for {
value, _ := FuncX()
if value == 0 {
break
}
}
您可以使用如下循環:
value, _ := FuncX()
for value == 0 {
value, _ = FuncX() // note using the = not :=
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.