如何使用PartialFunction.applyOrElse

How to use PartialFunction.applyOrElse

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

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

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

applyOrElse 的第二个参数接受一个函数——在你的例子中是 (Throwable) => Future[Result]

像这样传递一个函数:

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

或者干脆

errorMap.applyOrElse(e, Future.failed)