본문 바로가기
코틀린

코틀린(13) - 고차함수, 람다함수

by 왈레 2022. 3. 21.

고차함수(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) 일반 함수를 고차 함수로 변경해 주는 연산자

 

고차함수와 람다함수를 사용하면 이렇게 함수를 일종의 변수로 사용할수 있다는 편의성도 있지만 이후 배우게 컬렉션의 조작이나 스코프 함수의 사용에도 도움 된다.

댓글