2011-08-26 4 views
69

같은 코드를 사용하여 원격 서비스에서 여러 개의 반환 값을 처리하려고한다고 가정 해 보겠습니다.스칼라에서 여러 값을 일치시키는 방법은 무엇입니까?

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

은 내가 추출 방법을 사용하고 호출 할 수 있습니다 알고 있지만, 반복 호출 여전히있다 : 나는 스칼라에서 이것을 표현하는 방법을 모르겠어요. 내가 루비를 사용한 경우,이처럼 써서 : 나는 예를 단순화

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

참고, 따라서 나는 정규 표현식 또는 일부 등의 패턴 일치하고 싶지 않아요. 일치 값은 실제로는 복잡한 값입니다.

+0

가능한 중복 스칼라] (http://stackoverflow.com/questions/1837754/match-multiple-cases-classes-in-scala) – nawfal

답변

116

당신은 할 수 있습니다 : 당신이 이름으로 패턴의 일부를 바인딩 할 수 없습니다

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

주 - 현재이 작업을 수행 할 수 없습니다

code match { 
    case Left(x) | Right(x) => 
    case null => 
} 
[일치 여러 경우 수업에서의
관련 문제