Scala 惯用语从迭代器中找到第一个选项

标签 scala scala-collections scala-option

我有一个 Options 的迭代器,我想找到第一个成员:

  1. 一些
  2. 并遇到一个谓词

执行此操作的最佳惯用方法是什么?

另外:如果中途抛出异常,我想忽略它并转到下一个成员

最佳答案

optionIterator find { case Some(x) if predicate(x) => true  case _ => false }

至于忽略异常……是可以throw的谓词吗?因为那不是很明智。尽管如此……

optionIterator find {
  case Some(x) => Try(predicate(x)) getOrElse false
  case _       => false
}

关于Scala 惯用语从迭代器中找到第一个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531486/

相关文章:

scala - 如果值包含在 scala spark 的列表中,如何过滤行?

scala - 如何有效地检查是否定义了两个选项?

scala - 将 AnyRef 装箱到选项中的方法在哪里?

scala - 字典排列

scala - 是否有任何通用解决方案可以处理在 chisel3 中添加相同的泛型类型添加?

scala - 使用 Scala 将字符串转换为 Spark 的时间戳

list - 如何将元组添加到 List 并避免 java.lang.UnsupportedOperationException

scala - 在 Scala 中使用基于类型的过滤器时如何获得正确的返回类型

Scala Map 模式匹配

scala - Scala 中的延迟合并选项