욱'S 노트

Scala - 패턴 매칭 본문

Programming/Scala

Scala - 패턴 매칭

devsun 2016. 11. 9. 15:01

스칼라는 빌트인 패턴 매칭 메커니즘을 제공한다. 다음 예제는 정수 값에 대한 매치를 수행한 결과이다.

def getNumberString(number : Int) : String = number match {
case 1 => "one"
case 2 => "two"
case _ => "many"
}

println(getNumberString(1))
println(getNumberString(2))
println(getNumberString(3))

case문들이 있는 블럭에서 정수값을 문자열로 매핑하는 함수를 정의하고 있다. match 키워드는 객체에 대한 함수를 제공하는 편리한 방법이다.

다음은 다양한 타입의 패턴에 대응하는 방법이다.

def parseNumber(number : Any) : Any = number match {
case 1 => "one"
case "two" => 2
case number : Int => "scala.Int"
}

println(parseNumber(1))
println(parseNumber("two"))
println(parseNumber(3))
println(parseNumber("three"))

첫번째 case는 정수값 1을 매칭한다. 두번째 case는 문자열 "two"를 매칭하고 세번째 case는 타입패턴이다. number로 어떤 정수값이 들어오면 매칭한다.

스칼라의 패턴 매칭 구문은 케이스 클래스로 표현된 수학 타입 매칭에 매우 유용하다. 스칼라는 또한 케이스 클래스의 추출 오브젝트의 unapply 메소드를 활용해 케이스 클래스의 독립적인 패턴 정의를 지원한다.


출처 : http://docs.scala-lang.org/tutorials/tour/pattern-matching

'Programming > Scala' 카테고리의 다른 글

Scala - Case 클래스  (0) 2016.11.08
Scala - 커링  (0) 2016.11.04
Scala - 내포된 함수  (0) 2016.11.02
Scala - 고차함수  (0) 2016.11.02
Scala - 익명 함수  (0) 2016.11.02
Comments