Digamos que eu queira lidar com vários valores de retorno de um serviço remoto usando o mesmo código. Não sei como expressar isso no Scala:
code match {
case "1" => // Whatever
case "2" => // Same whatever
case "3" => // Ah, something different
}
Eu sei que posso usar Extrair Método e chamar isso, mas ainda há repetição na chamada. Se eu estivesse usando Ruby, escreveria assim:
case code
when "1", "2"
# Whatever
when "3"
# Ah, something different
end
Observe que simplifiquei o exemplo, portanto, não quero padronizar a correspondência em expressões regulares ou algo assim. Os valores de correspondência são, na verdade, valores complexos.
scala
pattern-matching
François Beausoleil
fonte
fonte
Respostas:
Você pode fazer:
code match { case "1" | "2" => // whatever case "3" => }
Observe que você não pode vincular partes do padrão a nomes - você não pode fazer isso atualmente:
code match { case Left(x) | Right(x) => case null => }
fonte