[Kotlin] inline 함수와 reified
·
Kotlin
inline 함수 인라인 (inline) 키워드는 자바에서는 제공하지않는 코틀린 전용 키워드입니다. 코틀린을 이용하여 개발하다보면, 함수의 파라미터로 고차함수를 넘겨 사용하는 경우가 많습니다. 하지만 코틀린 공식문서에서는 고차함수를 사용하면 메모리 할당 및 가상 호출을 통해 런타임 오버헤드를 발생시켜 특정 런타임 패널티가 부과된다고 소개하고 있습니다. 인라인 함수를 이용하면, 내부적으로 함수의 내용을 함수가 호출되는 위치에 복사하여 런타임 오버헤드를 줄일 수 있습니다. 그렇다면 내부적으로 함수의 내용을 호출하는 위치에 복사한다는 것은 어떤 의미일까요? 아래와 같이 고차함수를 파라미터로 받는 함수가 있습니다. fun executeJob(job: () -> Unit) { println("execute new..