Как шаблон соответствует нескольким значениям в 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


обратите внимание, что я упростил пример, поэтому я не хочу рисунок на регулярные выражения или что-то подобное. Значения соответствия на самом деле сложны ценности.

595   1  

1 ответ:

Вы можете сделать:

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

обратите внимание, что вы не можете привязать части шаблона к именам-вы не можете сделать это в настоящее время:

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

Comments

    Ничего не найдено.