我对短路求值的理解是,只有在if语句中需要时才会调用表达式.沿着这个走吗?
例如,我是否会从以下方面获得更好的平均性能:
if !isValidQueryParams(&queries) || r == nil || len(queries) == 0 {
return "", fmt.Errorf("invalid querystring")
}
...为此:
if r == nil || len(queries) == 0 || !isValidQueryParams(&queries) {
return "", fmt.Errorf("invalid querystring")
}
...既然isValidQueryParams
是一个比r == nil
或测试 map 长度开销大得多的函数?
i、 e.解释器会首先计算r==nil,看看它是真的,而不用费心计算其他条件吗?
编辑:错误地将短路判断称为延迟判断