- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为 errorMap 的 PartialFuncton[Throwable,Future[Result]]
将 throwable 转换为结果或失败的 future 。我可以像这样通过 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)
关于scala - 如何使用 PartialFunction.applyOrElse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29838820/
这有效: scala> List(1, "aa") collect { case n : Int => n+2 } res52: List[Int] = List(3) 这很好用: scala> v
PartialFunction 是一个天然的提取器,它的 lift 方法提供了精确的提取器功能。所以使用部分函数作为提取器会非常方便。这将允许以比可用于 PartialFunction 的普通 orE
这是我想了一段时间的事情。我经常看到这种模式: if (pf.isDefinedAt(in)) pf(in) 通过将其分解为两个单独的调用,所有在#isDefinedAt 中求值的模式也将在#appl
让我们定义一个 PartialFunction[String, String]和一个 PartialFunction[Any, String] 现在,给定 orElse 的定义 def orElse[
如何拦截 PartialFunction?例如在 Actor 中,如果我只想打印进入以下接收方法的所有内容,然后再将其传递给流程方法: class MyActor extends Actor {
我有一个名为 errorMap 的 PartialFuncton[Throwable,Future[Result]] 将 throwable 转换为结果或失败的 future 。我可以像这样通过 li
定义 PF 有两种方式: 1) 使用文字 case {}语法和 2) 作为显式类。我需要以下函数抛出一个 MatchError,但在第二种情况下不会发生。 1) 带外壳 val test: Parti
所以,假设我想为 PartialFunction 提供一个“包罗万象”的回退: val foo: PartialFunction[Int, String] = { case 1 => "foo" }
我不认为这段代码应该有效,但它确实有效(在 Scala 2.10 中): scala> ((i: Int) => i.toString match { | case s
我之前问过这个问题:Combine a PartialFunction with a regular function 然后意识到,我实际上并没有问对。 所以,这是另一个尝试。 如果我这样做: va
我正在学习Scala,从scala doc中找到PartialFunction和Function1的定义,如下所示: trait PartialFunction[-A, +B] extends (A)
偏函数 在 Scala 中,一个 PartialFunction 简而言之,是一个额外定义了一个 isDefinedAt 的函数方法。 用一系列 case 很容易定义偏函数陈述。一个简单的例子是,例如
我以为PartialFunction可以 Monoid .我的思维过程正确吗? 例如, import scalaz._ import scala.{PartialFunction => -->} im
在 Scala 中,PartialFunction[A, B] 类派生自类型 Function[A, B](请参阅 Scala 引用,12.3.3)。然而,这对我来说似乎违反直觉,因为 Functio
我对 scala 编译器允许编译这个相当奇怪、明显错误的代码这一事实感到有点失望: val foo: PartialFunction[Any, Unit] = { case s: String =
Scala API 中没有内置函数可以将 PartialFunction 提升为 Either。 这是我的版本: def liftToEither[A, B, C](pf: PartialFunc
在 scala 中,Futures 有一种采用 PartialFunction 的救援函数。如果 Future 通过响应解决,则跳过此代码,但如果发生故障,则会调用此代码。 我想简单地将部分函数包装在
我定义了 PartialFunction 的 2 个版本在斯卡拉。 val doubleEvens1: PartialFunction[Int, Int] = { case x if x
当第一个函数具有 case _ => 通配符模式时,是否有可能 orElse 组成两个 PartialFunction 匹配因此有效的任何内容是一个总函数。 例如给定 val pf1: Partial
我正在尝试将部分函数传递给通过滑动窗口在 DStream 批处理中捕获的所有 RDD 的并集。假设我在离散为 1 秒批处理的流上构造了一个超过 10 秒的窗口操作: val ssc = new Str
我是一名优秀的程序员,十分优秀!