Как сопоставить несколько значений по шаблону в Scala?

Допустим, я хочу обрабатывать несколько возвращаемых значений с удаленного сервис с использованием того же кода. Я не знаю, как выразить это в Scala:

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

Я знаю, что могу использовать Extract Method и вызывать это, но в вызове все еще есть повторение. Если бы я использовал Ruby, я бы написал это так:

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

Обратите внимание, что я упростил пример, поэтому я не хочу выполнять сопоставление с шаблоном в регулярных выражениях и т. Значения соответствия на самом деле являются комплексными значениями.

82
задан François Beausoleil 26 August 2011 в 19:39
поделиться