안드로이드 개발자의 창고
[18일차 Kotlin] 인라인 함수(Inline Function) 본문
출처 : 안드로이드 앱스쿨 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
2. 생성된 창에서 Decompile 클릭
✔️ main.decompile.java에서 Java로 변경된 코드 확인
- testFunction1()은 함수 호출 방식으로 변경되어 있다.
- testFunction2()은 인라인 함수로 함수의 코드가 main 내에 삽입되어 있다.
'Computer > Kotlin' 카테고리의 다른 글
[Kotlin 18일차] 확장 함수(Extension Function) (0) | 2023.05.23 |
---|---|
[18일차 Kotlin] 익명 함수 (0) | 2023.05.23 |
[18일차 Kotlin] 함수형 프로그래밍 (0) | 2023.05.23 |
[18일차 Kotlin] 연산자 오버로딩(Operator Overloading) (0) | 2023.05.23 |
[18일차 Kotlin] Scope Function(범위 지정 함수 - let, apply, run, with, also) (0) | 2023.05.23 |