如何使用PartialFunction.applyOrElse
How to use PartialFunction.applyOrElse
我有一个名为 errorMap 的 PartialFuncton[Throwable,Future[Result]]
来将 throwable 转换为结果或失败的未来。我可以通过 lift
和 getOrElse
这样做:
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)
我有一个名为 errorMap 的 PartialFuncton[Throwable,Future[Result]]
来将 throwable 转换为结果或失败的未来。我可以通过 lift
和 getOrElse
这样做:
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)