[Kotlin] 고차함수, 람다함수 설명 & 예제

728x90

고차함수

  • 고차함수란 함수를 클래스에서 만들어낸 '인스턴스'처럼 취급 하는 방법
  • 함수를 파라미터로 넘겨줄 수도 있고, '결과값'으로 반환 받을 수도 있는 방법 입니다.

    코틀린에서는 모든 함수를 고차함수로 사용 가능

fun main() {
    //::일반함수를 고차함수로 변경해주는 연산자
    b(::a)
}

fun a(str: String) {
    println("$str 함수 a")
}

//return 없는 경우 Unit
fun b(function: (String) -> Unit) {
    function("b가 호출함")
} 

 

람다 함수

  • 일반 함수와 달리 그 자체가 고차함수 별도의 연산자 없이도 변수에 담을 수 있다.
fun main() {
    //람다 함수
    //람다 함수는 그 자체가 고차함수이기 때문에 연산자 불 필요
    val c: (String) -> Unit = { str -> println("$str 람다함수") }
    b(c)
}

//return 없는 경우 Unit
fun b(function: (String) -> Unit) {
    function("b가 호출함")
}

 

람다 : 축약형

fun main() {
    val c = { str:String -> println("$str 람다함수") }
    b(c)
}

고차함수와 람다함수를 사용하면 함수를 일종의 변수로 사용할 수 있다는 편의성이 있다. 이외에도 컬렌션의 조작이나 스코프 함수의 사용에도 도움이 된다.

728x90

댓글

Designed by JB FACTORY