Archives
Recent Posts
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[18일차 Kotlin] 인라인 함수(Inline Function) 본문

Computer/Kotlin

[18일차 Kotlin] 인라인 함수(Inline Function)

Wise-99 2023. 5. 23. 18:08

 

 

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT

 

 

 

📖 인라인 함수

  • Java 코드로 변경될 때 자바 코드로 변경될 때 inline 함수를 호출하는 부분들은 함수 내부의 코드로 변경된다.
  • 함수 호출 방식은 전체 코드양이 줄어들어 메모리를 적게 쓴다는 장점이 있지만 호출 시 코드 흐름이 이동하고 다시 돌아와야 하기 때문에 작업량이 늘어난다.
  • 인라인 함수는 코드가 다소 늘어나지만 함수 호출과 관련된 작업을 하지 않는 장점이 있다.
  • 딱 힌번만 사용하는 함수가 있을 때 사용하는 경우가 종종 있다.

 

 

 

📖 예제 코드

fun main() { 
    testFunction1()
    testFunction1()

    testFunction2()
    testFunction2()
}

fun testFunction1(){
    println("----------------------------")
    println("testFunction1")
    println("----------------------------")
}

inline fun testFunction2(){
    println("----------------------------")
    println("testFunction2")
    println("----------------------------")
}

✔️ Console 출력 결과

 

✔️ 자바로 변경된 코드 확인 방법

1. IntelliJ 상단 메뉴 - Tools - Kotlin - Show Kotlin Bytecode

IntelliJ 상단 메뉴 - Tools - Kotlin - Show Kotlin Bytecode

2. 생성된 창에서 Decompile 클릭

생성된 창에서 Decompile 클릭

 

✔️ main.decompile.java에서 Java로 변경된 코드 확인

  • testFunction1()은 함수 호출 방식으로 변경되어 있다.
  • testFunction2()은 인라인 함수로 함수의 코드가 main 내에 삽입되어 있다.