Go 是否实现短路求值?
短路求值是指仅对 if 语句中的表达式进行求值的做法需要确定语句的结果。换句话说,如果 if 语句中的第一个表达式计算结果为 false,则不会计算其余表达式。
Go 确实实现了短路计算。这可以用以下代码来说明:
package main import "fmt" func main() { for i := 0; i < 10; i++ { if testFunc(1) || testFunc(2) { // do nothing } } } func testFunc(i int) bool { fmt.Printf("function %d called\n", i) return true }
当执行此代码时,它将打印以下输出:
$ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called
如您所见,函数 testFunc(2 ) 永远不会被调用,因为 if 语句 (testFunc(1)) 中的第一个表达式的计算结果为 true。这表明Go实现了短路评估。
以上是Go 在布尔表达式中使用短路求值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!