[코틀린기초] 19. 중위 함수와 재귀함수
중위 함수
## 중위 표현법
클래스의 멤버 호출 시 사용하는 점(.) 을 생략하고 함수이름 뒤에 소괄호를 생략해 직관적인 이름을 사용하는 표현법
## 중위 함수의 조건
- 멤버 메서드 또는 확장 함수여야 합니다.
- 하나의 매개변수를 가져야 합니다.
- infix 키워드를 사용하여 정의 합니다.
fun main(){
val multi = 2 multiply 10 // 중위표현법으로 연산자처럼 사용될 수 있다.
println("multi: $multi")
}
infix fun Int.multiply(x:Int) : Int {
return this * x //this는 Int로 받아온 값이 됨. x가 아님
}
꼬리 재귀 함수
## 재귀란
재귀는 자기 자신을 다시 참조
재귀함수는 자기 자신을 계속 호출하는 특징
## 꼬리 재귀 함수
스택에 계속 쌓이는 방식이 아닌 함수가 계속 씌워지는 꼬리를 무는 형태
스택 오버플로우가 나지는 않음
코틀린 고유의 tailrec 키워드를 사용해 선언
tailrec fun factorial(n: Int, run: Int = 1) Long{
return if(n==1) run.toLong() else factorial(n-1, run*n)
}