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 =>
}