【问题标题】:Scala Option filter method doubtsScala Option 过滤方法的疑惑
【发布时间】:2014-10-27 17:51:14
【问题描述】:

我一直在阅读 Scala 文档,并在浏览 Option 类时看到 filter 的实现如下所示:

final def filter(p: A => Boolean): Option[A] = 
  if (isEmpty || p(this.get)) this else None

为什么我们必须检查我们的Option 实例是否为空?这不会导致None 吗?

【问题讨论】:

    标签: scala filter option


    【解决方案1】:

    || 是短路的,因此首先检查isEmpty 可以确保不会在空选项上调用get(这会引发异常)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 2014-06-19
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      相关资源
      最近更新 更多