¿Cómo puedo hacer esto mejor en Scala?
def fooOutput(v1: Double, v2: Int): Int = { if (v1 >= 9 & v2 >= 2) { 5 } else if (v1 >= 8) { 4 } else if (v1 >= 4) { 3 } else { 2 } }No me gusta esto if else if else lógica.
¿Puedo usar la declaración de cambio para dos variables o tal vez algún mejor enfoque funcional de Scala?
Puede mover su condición a guardias de patrón, sin embargo, no está seguro de que sea mucho mejor:
def fooOutput(v1: Double, v2: Int): Int = v1 match { case _ if v1 >= 9 && v2 >= 2 => 5 case _ if v1 >= 8 => 4 case _ if v1 >= 4 => 3 case _ => 2 }