본문 바로가기
Android/안드로이드 스터디(Kotlin)

Kotlin] 25. inline 함수

by 김마리님 2020. 12. 10.

코틀린이나 자바나, 객체지향 언어라 함수를 만나면 함수 내의 행동을 실행하고, 다시 Main 함수 내로 돌아와서 다음 행동을 실행한다. 이런 행동은 프로그램 성능을 저해하는 요인 중 하나가 된다.

inline 키워드를 사용하면 굳이 돌아올 필요가 없어진다.

 

package inlineExample

inline fun hello(){
    println("Hello")
    println("World")
}

fun main() {
    hello()
    hello()
    hello()
}

 

이 코드는 컴파일할때 다음과 같이 변환한다.

fun main() {
    println("Hello")
    println("World")
    println("Hello")
    println("World")
    println("Hello")
    println("World")
}

 

그래서 결과가 다음과 같다

 

결과 :

 

Hello
World
Hello
World
Hello
World

 

 

그러나 inline 함수는 재활용되지 않기 때문에 문장이 적고 빈번히 호출되는 함수만 inline으로 만들어야 한다.

게다가 호출이 되는게 아니라 코드가 복사 - 붙여넣기 되는 형태라 결론적으로는 코드가 더 길어진다. 게다가 인자를 다른 함수로 전달할 수도 없다.

반응형

'Android > 안드로이드 스터디(Kotlin)' 카테고리의 다른 글

Kotlin] 27. lateinit  (0) 2020.12.10
Kotlin] 26. const  (0) 2020.12.10
Kotlin] 24. 동반자 객체(Companion Object)  (0) 2020.12.10
Kotlin] 23. 객체 선언(Singleton)  (0) 2020.12.10
Kotlin] 22. 확장  (0) 2020.12.10