面试题答案
一键面试在Go语言中,逻辑运算符 &&
和 ||
具有短路特性。即对于 &&
,如果第一个操作数为 false
,则不会计算第二个操作数;对于 ||
,如果第一个操作数为 true
,则不会计算第二个操作数。
代码示例
package main
import (
"fmt"
)
// 模拟复杂计算函数
func complexCalculation1() bool {
fmt.Println("complexCalculation1 called")
return true
}
// 模拟复杂计算函数
func complexCalculation2() bool {
fmt.Println("complexCalculation2 called")
return true
}
func main() {
// 使用短路逻辑优化
if complexCalculation1() && complexCalculation2() {
fmt.Println("Both functions returned true")
}
}
性能优化分析
- 减少不必要计算:在上述示例中,如果
complexCalculation1()
返回false
,complexCalculation2()
就不会被调用。这对于复杂计算或I/O操作函数非常有用,避免了不必要的开销。 - 提高程序效率:特别是在多个复杂函数参与条件判断时,合理利用短路逻辑可以显著减少整体的计算量,提高程序的执行效率。例如,如果第一个函数涉及数据库查询,且结果为
false
,则可以避免后续同样可能耗时的函数调用。