相关疑难解决方法(0)

使用短路评估的好处

boolean a = false, b = true;
if ( a && b ) { ... };
Run Code Online (Sandbox Code Playgroud)

在大多数语言中,b不会被评估,因为它a是假的,所以a && b不可能是真的.我的问题是,在架构方面,短路会不会更慢?在管道中,您是否只是在等待获得a的结果时停止以确定是否应该评估b?改为使用嵌套ifs会更好吗?这甚至有帮助吗?

此外,有谁知道通常所谓的短路评估?这个问题出现之后我发现我的编程朋友从未听说过短路评估,并表示它不常见,也没有在许多语言中找到,并且管道效率低下.我不确定最后一个,所以问你们大家好!

好吧,我想一个不同的例子或许可以解释我的朋友可能来自哪里.他认为,自从评估如下的声明:

(a) if ( ( a != null ) && ( a.equals(b) ) ) { ... }
Run Code Online (Sandbox Code Playgroud)

会崩溃系统,一个没有短路的架构(从而不允许像上面这样的语句)在处理这样的语句时会更快:

(b) if ( ( a == 4 ) && ( b == 5 ) )
Run Code Online (Sandbox Code Playgroud)

因为如果它不能并行地做(a),它就不能并行地做(b).在这种情况下,允许短路的语言比没有短路的语言慢.

我不知道这是不是真的.

谢谢

architecture pipeline

10
推荐指数
4
解决办法
6457
查看次数

标签 统计

architecture ×1

pipeline ×1