프로그래밍/코틀린
[코틀린] 고차함수 - 함수 반환
Jacob.park
2020. 3. 19. 02:28
고차 함수는 다른 함수를 매개변수로 이용하거나, 반환하는 함수이다.
앞에서는 매개변수 부분에 함수를 이용하는 방법을 알아보았다.
이번에는 고차 함수에서 함수를 반환하는 방법에 대해 살펴보겠다.
fun hoFun5(str: String): (Int, Int) -> Int {
return when (str) {
"*" -> { x1, x2 -> x1 * x2 }
"-" -> { x1, x2 -> x1 - x2 }
"/" -> { x1, x2 -> x1 / x2 }
else -> { x1, x2 -> x1 + x2 }
}
}
fun main() {
val resultFun = hoFun5("*")
println("resultFun * : ${resultFun(10,5)}")
}
[결과값]
resultFun * : 50
위의 소스에서 fun hoFun5의 (:) 세미콜론 오른쪽에 있는 타입이 반환 타입이된다.
즉, 반환 타입이 (Int, Int) -> Int 함수타입을 가진다.
hoFun5는 *에 해당하는 {x1, x2 -> x1 * x2}라는 함수를 반환하고, 그 함수에 10과 5 인수가 들어가
50이라는 결과를 발생한다.