Scala-布尔-和;vs&&;,|vs||
我刚刚注意到,在Scala中,布尔值既支持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文档对它们使用完全相同的描述,所以我不确定。&
和
是严格的,而&
和
是短路:
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您指的是短路吗?啊,不知道您可以展开这些部分。。。完全错过了箭头。啊,不知道你可以扩展部分。。。完全没有射中箭。