如何使用PartialFunction.applyOrElse

时间:2015-04-24 04:38:03

标签: scala partialfunction

我有一个PartialFuncton[Throwable,Future[Result]]名为 errorMap ,用于将throwable转换为结果或将来失败。我可以通过liftgetOrElse这样做:

val x: Future[Result] = errorMap.lift(e).getOrElse(Future.failed(e))

我认为使用applyOrElse可以实现同样的目标,但我似乎无法弄清楚如何调用它来实现这一目标。我误解了applyOrElse的用途吗?

1 个答案:

答案 0 :(得分:6)

applyOrElse的第二个参数需要一个函数 - 在您的情况下为(Throwable) => Future[Result]

传递一个这样的函数:

errorMap.applyOrElse(e, _ => Future.failed(e))

或只是

errorMap.applyOrElse(e, Future.failed)