스칼라에서의 메소드 형태와 패턴매칭 기법에 대해서 간략하게 알아보고 이를 이용해 재귀와 반복문 형태의 팩토리얼과 피보나치수를 구하는 메소드를 작성해보자.
/* Factorial Exercise 1*/
def fac1(n: Int): Int = if(n==0) 1 else n * fac(n-1)
/* Factorial Exercise - 'Pattern Match' */
def fac2(n: Int): Int = n match {
case 0 => 1
case _ => n * fac(n-1)
}
/* Factorial Exercise - iterative way (Nested Function) */
def fac3(n: Int): Int = {
def fac_iter(p: Int, k: Int, n: Int): Int = if(k > n) p else fac_iter(p * k, k + 1, n)
fac_iter(1,1,n)
}
/* Factorial Exercise 1*/
def fac1(n: Int): Int = if(n==0) 1 else n * fac(n-1)
/* Factorial Exercise 1*/
def fac1(n: Int): Int = if(n==0) 1 else n * fac(n-1)
스칼라의 패턴매칭 기법은 기존 명령형 프로그래밍 언어에서 사용하는 Switch 문과 그 형태가 닮았으나 case 문에 수식이나 함수가 들어갈 수 있다는 점에서 다르다.
이처럼 패턴매칭 기법을 이용하면 기존 Java에서 메소드를 작성하는 것과 달리 좀 더 직관적인 형태의 코드를 작성할 수 있게 된다.