Comment mettre en correspondance plusieurs valeurs dans Scala?

Disons que je veux gérer plusieurs valeurs de retour d’un service distant en utilisant le même code. Je ne sais pas comment exprimer cela en Scala:

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

Je sais que je peux utiliser la méthode d’extraction et l’appeler, mais il y a encore de la répétition dans l’appel. Si j’utilisais Ruby, je l’écrirais comme ceci:

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

Notez que j’ai simplifié l’exemple, donc je ne veux pas faire correspondre les expressions aux expressions régulières ou à d’autres. Les valeurs de correspondance sont en réalité des valeurs complexes.

Tu peux faire:

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

Notez que vous ne pouvez pas lier certaines parties du motif aux noms – vous ne pouvez pas le faire actuellement:

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