Kotlin

Kotlin 용어, 키워드 간단정리 (일급함수, Higher-Order Functions, inline)

Developer RyanKim 2022. 3. 6. 16:52

1.  일급함수 (first-class function)

https://en.wikipedia.org/wiki/First-class_function
코틀린 함수는 일급 함수(first-class function) 이다.

    • 코틀린의 함수는 함수의 매개변수가 될 수 있다.
    • 코틀린의 함수는 함수의 return 값이 될 수 있다.
    • 코틀린의 함수는 할당 명령문(=, 대입)의 대상이 될 수 있다.
    • 코틀린의 함수는 동일 비교(==, equal)의 대상이 될 수 있다

: 간단히 함수가 객체화 될수 있다면 일급함수라고 이해했다.

 


2. Higher-Order Functions (고차 함수)

https://kotlinlang.org/docs/lambdas.html

함수를 파라메터로 가지거나, 이를 반환하는 함수이다.


fun <T, R> Collection<T>.fold(
    initial: R,
    combine: (acc: R, nextElement: T) -> R
): R {
    var accumulator: R = initial
    for (element: T in this) {
        accumulator = combine(accumulator, element)
    }
    return accumulator
}

 

3. inline 키워드

https://kotlinlang.org/docs/inline-functions.html#non-local-returns
람다를 받아 실행하는 함수의 경우, 내부적으로 Function 객체를 생성하여 실행됨
-> 반복적인 동작시 무의미하게 객체를 과다 생성하는 오버헤드 발생

inline 키워드를 사용하면 컴파일시 해당 람다부분이 코드로 삽입되어 객체 생성을 하지않음.