Slide 6
Slide 6 text
value class は何故高パフォーマンスなのか
@JvmInline value class FooId(val value: Int) { fun asString() = value.toString() }
data class BarId(val value: Int) { fun asString() = value.toString() }
fun f1(fooId: FooId, barId: BarId) { f2(fooId, barId) }
fun f2(fooId: FooId, barId: BarId) { println("${fooId.asString()}, ${barId.asString()}") }
/* f1, f2のデコンパイル結果(抜粋・整形済み) */
public static final void f1-Zzqckw8(int fooId, @NotNull BarId barId) {
Intrinsics.checkNotNullParameter(barId, "barId");
f2-Zzqckw8(fooId, barId);
}
public static final void f2-Zzqckw8(int fooId, @NotNull BarId barId) {
Intrinsics.checkNotNullParameter(barId, "barId");
String var2 = FooId.asString-impl(fooId) + ", " + barId.asString();
boolean var3 = false;
System.out.println(var2);
}
6