Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala-布尔-和;vs&&;,|vs||_Scala_Boolean_Operators - Fatal编程技术网

Scala-布尔-和;vs&&;,|vs||

Scala-布尔-和;vs&&;,|vs||,scala,boolean,operators,Scala,Boolean,Operators,我刚刚注意到,在Scala中,布尔值既支持&又支持&。这两个操作员之间有区别吗?Scala文档对它们使用完全相同的描述,所以我不确定。&和是严格的,而&和是短路: false && (throw new Exception()) => false false & (throw new Exception()) => ex true || (throw new Exception()) => true true | (throw new Exceptio

我刚刚注意到,在Scala中,布尔值既支持
&
又支持
&
。这两个操作员之间有区别吗?Scala文档对它们使用完全相同的描述,所以我不确定。

&
是严格的,而
&
是短路:

false && (throw new Exception()) => false
false & (throw new Exception()) => ex

true || (throw new Exception()) => true
true | (throw new Exception()) => ex
&
|
的完整文档中有一个注释解释了这种行为:

此方法同时计算a和b,即使结果已为 评估a后确定


&
|
是严格的,而
&
|
是短路:

false && (throw new Exception()) => false
false & (throw new Exception()) => ex

true || (throw new Exception()) => true
true | (throw new Exception()) => ex
&
|
的完整文档中有一个注释解释了这种行为:

此方法同时计算a和b,即使结果已为 评估a后确定


对惰性/短路(&&)和完整(&)求值,就像Java一样。@user2864740您指的是短路吗?是的。惰性/短路(&&)和完整(&)求值,就像Java一样。@user2864740您指的是短路吗?啊,不知道您可以展开这些部分。。。完全错过了箭头。啊,不知道你可以扩展部分。。。完全没有射中箭。