Как шаблон соответствует нескольким значениям в Scala?
допустим, я хочу обрабатывать несколько возвращаемых значений из удаленной службы, используя один и тот же код. Я не знаю, как выразить это в Scala:
code match {
case "1" => // Whatever
case "2" => // Same whatever
case "3" => // Ah, something different
}
Я знаю, что могу использовать метод извлечения и вызвать это, но в вызове все еще есть повторение. Если бы я использовал Ruby, я бы написал это так:
case code
when "1", "2"
# Whatever
when "3"
# Ah, something different
end
обратите внимание, что я упростил пример, поэтому я не хочу рисунок на регулярные выражения или что-то подобное. Значения соответствия на самом деле сложны ценности.
1 ответ:
Вы можете сделать:
code match { case "1" | "2" => // whatever case "3" => }обратите внимание, что вы не можете привязать части шаблона к именам-вы не можете сделать это в настоящее время:
code match { case Left(x) | Right(x) => case null => }
Comments