고차함수(C언어에서 함수포인터와 비슷하다)
고차함수란 함수포인터라고 생각하면 된다.
함수를 '파라미터'로 넘겨줄 수 있고 '결과값으로 반환'시킬 수 도 있다.
코틀린에서는 '모든 함수'를 고차함수로 사용 가능하다.
람다함수
일단은 간단한 함수라고 생각하자. 깊이 들어가면 내용이 쫌 있다.
고차함수와 람다함수의 응용
fun main(){
b(::a) // 일반 함수를 고차 함수로 변경해 주는 연산자
val c = { str : String -> println("$str 람다함수")} // 람다함수(val c는 타입추론됨)
b(c)
}
fun a (str: String){
println("$str 함수 a")
}
fun b(function:(String)->Unit){ // 함수를 자료형으로 나타내는법!
function("b가 호출한 ")
}
*Unit은 반환형에는 값이 없는 형식이다 라는 뜻이다.
*a(::b) 일반 함수를 고차 함수로 변경해 주는 연산자
고차함수와 람다함수를 사용하면 이렇게 함수를 일종의 변수로 사용할수 있다는 편의성도 있지만 이후 배우게 될 컬렉션의 조작이나 스코프 함수의 사용에도 도움이 된다.
'코틀린' 카테고리의 다른 글
코틀린(15) - 다형성 (0) | 2022.03.23 |
---|---|
코틀린(14) - 람다함수를 이용한 스코프 함수 (0) | 2022.03.21 |
코틀린(12) - 스코프, 접근제한자 (0) | 2022.03.21 |
코틀린(11) - 코틀린의 기본적인 프로젝트 구조 (0) | 2022.03.21 |
코틀린(10) - 오버라이딩 , 추상화, 인터페이스 (0) | 2022.03.21 |
댓글