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 키워드를 사용하면 컴파일시 해당 람다부분이 코드로 삽입되어 객체 생성을 하지않음.