【发布时间】:2010-04-26 09:42:35
【问题描述】:
我希望能够在 Scala 中将操作 f: (T,T) => T 应用于 Option[T] 值。如果两个值中的任何一个为None,我希望结果为None。
更具体地说,我想知道是否有更短的方法来执行以下操作:
def opt_apply[T](f: (T,T) => T, x: Option[T], y: Option[T]): Option[T] = {
(x,y) match {
case (Some(u),Some(v)) => Some(f(u,v))
case _ => None
}
}
我尝试了(x zip y) map {case (u,v) => f(u,v)},但结果是Iterator[T] 而不是Option[T]。
【问题讨论】:
标签: scala type-conversion scalaz