고차 함수는 다른 함수를 매개변수로 이용하거나, 반환하는 함수이다.
앞에서는 매개변수 부분에 함수를 이용하는 방법을 알아보았다.
이번에는 고차 함수에서 함수를 반환하는 방법에 대해 살펴보겠다.
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이라는 결과를 발생한다.
'프로그래밍 > 코틀린' 카테고리의 다른 글
[코틀린] 고차함수 - 함수 참조와 익명 함수 이용 (0) | 2020.03.23 |
---|---|
[코틀린] 고차함수 - 매개변수 대입 (0) | 2020.03.19 |
[코틀린] 람다 표현식 (0) | 2020.03.04 |
[코틀린] 일급 객체로서의 함수 (0) | 2020.03.04 |
[코틀린] 순수함수로 정의 될 수 있는 함수 (0) | 2020.02.29 |