相关疑难解决方法(0)

Go中的短路评估

我对短路评估的理解是只在if语句中需要时调用表达式.Go会跟着这个吗?

例如,我平均可以从以下方面获得更好的表现:

if !isValidQueryParams(&queries) || r == nil || len(queries) == 0 {
    return "", fmt.Errorf("invalid querystring")
}
Run Code Online (Sandbox Code Playgroud)

......对此:

if r == nil || len(queries) == 0 || !isValidQueryParams(&queries) {
    return "", fmt.Errorf("invalid querystring")
}
Run Code Online (Sandbox Code Playgroud)

...因为这isValidQueryParams是一个比r == nil测试地图长度要多得多的功能?

也就是说,解释员首先会评估r == nil,看到它是真的而不是费心去评估其他条件吗?

编辑:错误地将短路评估称为惰性评估

go short-circuiting

5
推荐指数
3
解决办法
1874
查看次数

标签 统计

go ×1

short-circuiting ×1