我刚刚注意到在 Scala 中
Boolean
同时支持 &
和 &&
。这两个运算符有区别吗? Scala 文档对它们使用完全相同的描述,所以我不确定。
&
和 |
是严格的,而 &&
和 ||
是短路:
false && (throw new Exception()) => false
false & (throw new Exception()) => ex
true || (throw new Exception()) => true
true | (throw new Exception()) => ex
&
和
|
的完整文档有一个解释此行为的注释:
此方法同时评估
和
a
,即使结果已经是 评估后确定
b
。
a