Ich will immer immer den Some
Wert zu extrahieren, wenn es vorhanden ist, und sonst bekommen die None
Sie haben soeben orElse
def orOption[T](p: (Option[T], Option[T])): Option[T] = {
val (o1, o2) = p
o1 orElse o2
}
jedoch verwenden können, das, was entscheidet zu tun wenn es zwei Some
Werte gibt:
scala> orOption((Some(1), Some(2)))
res0: Option[Int] = Some(1)
Sie sollten wahrscheinlich Mustererkennung verwenden und dann entscheiden, was zu tun ist, wenn es zwei Some
Werte gibt, wie eine Ausnahme werfen. Verwenden Sie alternativ eine bessere Codierung für den Ergebnistyp als Option
.
Welches Ergebnis wollen Sie von diesen Tupeln? Was ist, wenn beide "Einige" (Einige (1), Einige (2)) sind? – Psidom
@Psidom Aufgrund der Natur meines Problems ist es unmöglich, diesen Fall zu haben. Ich habe mich gefragt, ob Tupel mit Optionen ein ähnliches Verhalten wie p/\! P == False hatten. – Alessandroempire
Die Ausgabe, die Sie wollen, ist immer noch eine Option, oder? – mfirry