我希望能够在Scala中应用操作f: (T,T) => T
到Option[T]
值。如果两个值中的任何一个值为None
,我希望结果为None
。如何在Scala中结合选项值?
更具体地说,我想知道是否有一个较短的方式来做到以下几点:我已经tryied (x zip y) map {case (u,v) => f(u,v)}
def opt_apply[T](f: (T,T) => V, x: Option[T], y: Option[T]): Option[T] = {
(x,y) match {
case (Some(u),Some(v)) => Some(f(u,v))
case _ => None
}
}
但结果是Iterator[T]
不是Option[T]
。
任何帮助将不胜感激。谢谢。
errrr,这应该更新正确http://docs.scala-lang.org/style/control-structures.html,因为它应该是{x0 < - x; y0 < - y)},我想,对吧? – 2014-10-15 17:50:50
@DeanHiller,嗯是的。风格指南在我想的时候不存在。 :) – missingfaktor 2014-10-16 10:16:23