728x90
- 고차 함수(high order fuction)란 함수를 매개변수로 전달받거나 반환하는 함수를 의미합니다.
- 일반적으로 함수의 매개변수나 반환값은 데이터입니다.
- 그런데 데이터가 아닌 함수를 매개변수나 반환값으로 이용하는 함수를 고차 함수라 합니다.
- 이처럼 함수를 매개변수나 반환값으로 이용할 수 있는 것은 앞에서 살펴보았듯이 함수를 변수에 대입할 수 있기 떄문입니다.
- 다음 코드에서 hofFun()은 고차 함수입니다.
- 매개변수를 하나 선언했지만 타입이 함수입니다.
- 따라서 이 함수를 호출하려면 인자로 함수를 전달해야 합니다.
- 또한, 반환 타입 역시 함수이므로 호출 결과로 함수를 반환받습니다.
fun hofFun(arg: (Int) -> Boolean): () -> String {
val result = if(arg(10)){
"valid"
}else{
"invalid"
}
return {"hofFun result : $result"}
}
fun main(){
val result = hofFun({no -> no > 0})
println(result())
}
출처 : 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 (강성윤 저)
728x90
'Kotlin 앱 프로그래밍' 카테고리의 다른 글
(코틀린) 주 생성자와 보조 생성자 (0) | 2023.05.22 |
---|---|
코틀린 널 안정성 연산자 (0) | 2023.05.21 |
(코틀린) 람다 함수의 반환 (0) | 2023.05.21 |
(코틀린) 매개변수가 1개인 람다 함수 (0) | 2023.05.21 |
코틀린 컬렉션 타입의 데이터 개수만큼 반복문 (0) | 2023.05.20 |