lol*_*ski 2 monads scala exception-handling scala-2.11
如果我List[Try[A]]在Scala中有一个过滤掉Failure(t)值的惯用方法是什么?
一种方法是使用以下内容:
val someList: List[Try[String]] = ...
someList.filter(_.isFailure)
Run Code Online (Sandbox Code Playgroud)
是否有更"惯用"的方式,例如使用flatten?这看起来很简单.
如果你想获得所有例外,你可以这样使用collect:
someList.collect{ case Failure(t) => t }
// List[Throwable]
Run Code Online (Sandbox Code Playgroud)
如果您想获得所有成功结果,您可以使用flatMap或collect:
someList.flatMap{ _.toOption }
// List[String]
someList.collect{ case Success(s) => s }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1266 次 |
| 最近记录: |