Supposons que je souhaite gérer plusieurs valeurs de retour à partir d'un service distant en utilisant le même code. Je ne sais pas comment l'exprimer 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 toujours 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 de correspondance de motifs sur des expressions régulières ou d'autres. Les valeurs de correspondance sont en fait des valeurs complexes.
Tu peux faire:
code match {
case "1" | "2" => // whatever
case "3" =>
}
Notez que vous ne pouvez pas lier des parties du motif à des noms - vous ne pouvez pas le faire actuellement:
code match {
case Left(x) | Right(x) =>
case null =>
}