Scala成语首先从迭代器中找到一些Option

SRo*_*mes 2 scala scala-collections scala-option

我有一个选项的迭代器,并希望找到第一个成员:

  1. 一些
  2. 并符合谓词

什么是最好的惯用方法呢?

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

Ran*_*ulz 6

optionIterator find { case Some(x) if predicate(x) => true  case _ => false }
Run Code Online (Sandbox Code Playgroud)

至于忽略异常......它可以作为谓词throw吗?因为这不是真的明智.不过...

optionIterator find {
  case Some(x) => Try(predicate(x)) getOrElse false
  case _       => false
}
Run Code Online (Sandbox Code Playgroud)