fun main() {
printWithInline()
printWithoutInline()
}
inline fun printWithInline(){
println("print With Inline")
}
fun printWithoutInline(){
println("print Without Inline")
}
→ 이 코드는 자바로 이렇게 디컴파일 됨
public static final void main() {
String var1 = "print With Inline";
System.out.println(var1);
printWithoutInline();
}
public static final void printWithInline() {
String var1 = "print With Inline";
System.out.println(var1);
}
public static final void printWithoutInline() {
String var0 = "print Without Inline";
System.out.println(var0);
}
<aside> 💡 inline 함수는 호출 위치에 바로 때려박힌다
</aside>
fun main() {
println(IntBoxing(11).value)
}
class IntBoxing(val value: Int)
→ 위 코드는 다음과 같은 자바코드로 디컴파일됨
public static final void main() {
int var0 = (new IntBoxing(11)).getValue();
System.out.println(var0);
}
<aside> 💡 Kotlin 의 Int 가 Java 의 int 로 디컴파일 되지 않아 성능 손실 발생
</aside>