코틀린이나 자바나, 객체지향 언어라 함수를 만나면 함수 내의 행동을 실행하고, 다시 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 |