match
는 무엇인가?Scala에서 match
는 연산자도 아니고 함수도 아닙니다. 대신, match
는 키워드로서 패턴 매칭 표현식을 구현하는 구문입니다. 즉, match
는 값을 패턴에 따라 매칭하는 구문을 정의하는 역할을 하며, 그 자체가 표현식(expression)입니다.
Scala에서 match
는 항상 case
와 함께 사용되어야 합니다. match
표현식의 목적은 주어진 값을 다양한 **패턴(case
)**에 매칭하는 것이며, 각 패턴은 case
키워드를 사용하여 정의됩니다. 따라서 case
는 match
표현식의 핵심적인 구성 요소입니다.
match-case
구조에서의 필수 구성 요소match
가 평가할 대상이 되는 값.case
): match
가 평가할 값과 일치시키려는 조건을 정의합니다.case
패턴이 일치했을 때 반환하거나 실행할 코드.case
를 match
와 함께 사용하는 경우와 아닌 경우Scala에서 match
와 case
는 패턴 매칭을 구현하는 중요한 구성 요소입니다. 두 개념이 함께 또는 단독으로 사용될 때 어떤 차이가 있는지 더 자세히 살펴보겠습니다.
match
와 함께 사용되는 case
일반적인 패턴 매칭은 match
키워드와 함께 사용됩니다. 이 방식은 값에 대해 여러 패턴을 시도하고, 패턴이 일치하면 해당 블록의 코드를 실행하는 구조입니다.
value match {
case pattern1 => result1
case pattern2 => result2
case _ => defaultResult
}
value
: 패턴 매칭을 적용할 값case pattern => result
: 각 case
는 값이 특정 패턴과 일치할 때 반환할 결과 또는 실행할 코드를 나타냅니다._
: 와일드카드로, 모든 값과 일치합니다. 보통 기본 값을 지정할 때 사용됩니다.val x = 2
x match {
case 1 => "one"
case 2 => "two"
case _ => "other"
}
여기서 x
가 2
와 일치하므로 결과는 "two"
가 됩니다.
case
가 익명 함수에서 사용되는 경우