switch pattern for scala pattern-matching

pattern - scala for



¿Cómo se combinan los patrones con múltiples valores en Scala? (1)

Digamos que quiero manejar múltiples valores devueltos desde un servicio remoto usando el mismo código. No sé cómo expresar esto en Scala:

code match { case "1" => // Whatever case "2" => // Same whatever case "3" => // Ah, something different }

Sé que puedo usar Extract Method y llamarlo, pero todavía hay repetición en la llamada. Si estuviera usando Ruby, lo escribiría así:

case code when "1", "2" # Whatever when "3" # Ah, something different end

Tenga en cuenta que simplifiqué el ejemplo, por lo que no quiero que coincida con el patrón en expresiones regulares o algo así. Los valores de coincidencia son en realidad valores complejos.


Tu puedes hacer:

code match { case "1" | "2" => // whatever case "3" => }

Tenga en cuenta que no puede vincular partes del patrón a nombres; no puede hacer esto actualmente:

code match { case Left(x) | Right(x) => case null => }