Ich möchte eine Operation f: (T,T) => T
zu Option[T]
Werte in Scala anwenden können. Ich möchte, dass das Ergebnis None
ist, wenn einer der beiden Werte None
ist.Wie kombiniere ich Optionswerte in Scala?
Genauer gesagt, möchte ich, wenn wissen, gibt es einen kürzeren Weg folgendes zu tun:
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
}
}
ich (x zip y) map {case (u,v) => f(u,v)}
haben tryied aber das Ergebnis ist ein Iterator[T]
kein Option[T]
.
Jede Hilfe wird geschätzt. Vielen Dank.
errrr, dies sollte richtig aktualisiert werden http://docs.scala-lang.org/style/control-structures.html wie es sein sollte für {x0 <- x; y0 <- y)}, denke ich, oder? –
@DeanHiller, hmm ja. Styleguide gab es zu der Zeit, als ich denke, nicht. :) – missingfaktor