Gibt es eine idiomatische/einfachere Möglichkeit, diesen Code zu schreiben, der zwei Optionen behandelt?Bedingte Logik bei der Auswertung von zwei Optionen
object Test extends App {
val colors = Some(1)
val sizes = Some(2)
val ids = colors match {
case None => {
sizes match {
case None => getRegularIds
case Some(sizes) => getSizeIds
}
}
case Some(colors) => {
sizes match {
case None => getColorIds
case Some(sizes) => getColorIds ++ getSizeIds
}
}
}
println(ids)
def getColorIds = Seq(1,2,4)
def getSizeIds = Seq(4,5,6)
def getRegularIds = Seq(7,8,9)
}
Scala ist so präzise, dass es führt mich zu denken, ist wahrscheinlich ein sauberer Weg, um die gleichen Ergebnisse zu erzielen. Vielen Dank für Ihre Zeit.
Danke für die Eingabe. Viel sauberer. – user455497
Auf der anderen Seite ist verschachtelte Logik schneller, da es zu einer flacheren Verzweigung führt. –
@PaulDraper Auch wenn dies der Fall ist, überwiegen diese 0,0000001% Leistungssteigerung die Wartbarkeit nicht. – ipoteka