Desidero poter applicare un'operazione con valori f: (T,T) => T
a Option[T]
in Scala. Voglio che il risultato sia None
se uno qualsiasi dei due valori è None
.Come combinare i valori delle opzioni in Scala?
Più in particolare, voglio sapere se c'è un modo più breve per effettuare le seguenti operazioni:
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
}
}
ho tryied (x zip y) map {case (u,v) => f(u,v)}
ma il risultato è un non Iterator[T]
un Option[T]
.
Qualsiasi aiuto sarà apprezzato. Grazie.
errrr, questo dovrebbe essere aggiornato a destra http://docs.scala-lang.org/style/control-structures.html come dovrebbe essere per {x0 <- x; y0 <- y)}, penso, giusto? –
@DeanHiller, hmm si. La guida allo stile non esisteva al momento penso. :) – missingfaktor