Scala 并发编程与解析器组合器:原理与实践
1. Scala 中的 Futures 并发编程
Scala 的 Futures 为并发编程提供了强大的支持,帮助我们避免阻塞,充分利用多处理器的优势。
1.1 Futures 的 transformWith 方法
在 Scala 2.12 中,Future 新增了 transformWith 方法,它允许使用一个从 Try 到 Future 的函数来转换 Future。以下是一个示例:
scala> val flipped = success.transformWith { // Scala 2.12
case Success(res) =>
Future { throw new Exception(res.toString) }
case Failure(ex) => Future { 21 + 21 }
}
flipped: scala.concurrent.Future[Int] = ...
scala> flipped.value
res5: Option[scala.util.Try[Int]] =
Some(Failure(java.lang.Exception: 42))
transformWith 方法与 Scala 2.12 中新增的重载 transform 方法类似,但 transformWith
超级会员免费看
订阅专栏 解锁全文
1088

被折叠的 条评论
为什么被折叠?



