Scala에서 여러 값을 패턴 화하는 방법은 무엇입니까?


85

동일한 코드를 사용하여 원격 서비스에서 여러 반환 값을 처리하고 싶다고 가정 해 보겠습니다. 나는 이것을 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

예제를 단순화 했으므로 정규 표현식이나 일부에 대한 패턴 일치를 원하지 않습니다. 일치 값은 실제로 복잡한 값입니다.


답변:


150

넌 할 수있어:

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

패턴의 일부를 이름에 바인딩 할 수 없습니다. 현재는이 작업을 수행 할 수 없습니다.

code match {
  case Left(x) | Right(x) =>
  case null =>
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.