【问题标题】:Scala - Booleans - & vs &&, | vs ||Scala - 布尔值 - & vs &&, |与 ||
【发布时间】:2014-09-23 22:01:28
【问题描述】:

我刚刚注意到在 Scala 中 Boolean 支持 &&&。这两个运营商有区别吗? Scala 文档对它们都使用了完全相同的描述,所以我不确定。

【问题讨论】:

  • 是的。惰性/短路 (&&) 和完整 (&) 评估,就像 Java 一样。
  • @user2864740 你指的是短路吗?

标签: scala boolean operators


【解决方案1】:

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

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

true || (throw new Exception()) => true
true | (throw new Exception()) => ex

&| 的完整文档有注释解释这种行为:

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

【讨论】:

  • 啊,不知道你可以扩展这些部分......完全错过了箭头。
猜你喜欢
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多