我想要运行一个函数多次,然后做一些事情,如果有任何失败。
因此,我在循环调用之前设置了一个标志,被调用的函数返回一个成功/失败的布尔值,但是,如果我使用内联逻辑,并且函数不再被调用,就好像一个if语句存在一样。有人能解释一下吗?
围棋游乐场(https://go.dev/play/p/I5DP2mDmoqI)的例子
package main
import "fmt"
func main() {
fmt.Println("In-line logical AND")
resultOK := true
for i := 0; i < 10; i++ {
resultOK = resultOK && doSomething(i)
}
fmt.Println("Separate line for logical AND")
resultOK = true
for i := 0; i < 10; i++ {
result := doSomething(i)
resultOK = resultOK && result
}
}
func doSomething(i int) bool {
fmt.Println("Hello, 世界", i)
return i%2 == 0
}结果输出
In-line logical AND
Hello, 世界0 : true
Hello, 世界1 : false
: false
: false
: false
: false
: false
: false
: false
: false
Separate line for logical AND
Hello, 世界0 : true
Hello, 世界1 : false
Hello, 世界2 : false
Hello, 世界3 : false
Hello, 世界4 : false
Hello, 世界5 : false
Hello, 世界6 : false
Hello, 世界7 : false
Hello, 世界8 : false
Hello, 世界9 : false发布于 2022-08-01 12:43:03
https://stackoverflow.com/questions/73193772
复制相似问题