Digamos que quiero manejar múltiples valores de retorno de 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 llamar a eso, 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 emparejar patrones en expresiones regulares o algo así. Los valores de coincidencia son en realidad valores complejos.
scala
pattern-matching
François Beausoleil
fuente
fuente
Respuestas:
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 => }
fuente