Je veux être en mesure d'appliquer une opération f: (T,T) => T
à Option[T]
valeurs dans Scala. Je veux que le résultat soit None
si l'une des deux valeurs est None
.Comment combiner les valeurs d'options dans Scala?
Plus précisément, je veux savoir s'il est un chemin plus court pour faire ce qui suit:
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
}
}
Je tryied (x zip y) map {case (u,v) => f(u,v)}
mais le résultat est un Iterator[T]
pas Option[T]
.
Toute aide sera appréciée. Merci.
errrr, cela devrait être mis à jour à droite http://docs.scala-lang.org/style/control-structures.html comme il se doit pour {x0 <- x; y0 <- y)}, je pense, n'est-ce pas? –
@DeanHiller, hmm ouais. Le guide de style n'existait pas au moment où je pense. :) – missingfaktor