4
所以,基本上我想知道Kotlin的字符串插值如何看Java(反編譯的字節碼)。起初我以爲它會使用StringBuffer(或StringBuilder)或String.format(),但似乎它並沒有連接。這樣做真的是最佳嗎?字符串池呢?爲什麼Kotlin的字符串插值在Java中串聯字符串?
這裏是我的科特林代碼:
fun main(args: Array<String>) {
val age : Int = 24
var mySuperString : String = "Dato is ${age} years old!"
println(mySuperString)
}
這裏是我已經反編譯的形式* .class文件的Java代碼:
import java.io.PrintStream;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import org.jetbrains.annotations.NotNull;
@Metadata(mv={1, 1, 6}, bv={1, 0, 1}, k=2, d1={"\000\024\n\000\n\002\020\002\n\000\n\002\020\021\n\002\020\016\n\002\b\002\032\031\020\000\032\0020\0012\f\020\002\032\b\022\004\022\0020\0040\003�\006\002\020\005�\006\006"}, d2={"main", "", "args", "", "", "([Ljava/lang/String;)V", "KotlinProject"})
public final class MainKt
{
public static final void main(@NotNull String[] args)
{
Intrinsics.checkParameterIsNotNull(args, "args");int age = 24;
String mySuperString = "Dato is " + age + " years old!";
System.out.println(mySuperString);
}
}
即使字符串是巨大的和值很多,它仍然使用加號!
這是最快的方式或爲什麼他們這樣做?
誰說反編碼=字節碼? –
@AhhijitSarkar所以,我錯了。在字節碼中它可能是一個字符串,但是當我反編譯它時,它是加號?哦好的。也許就是這樣。 – user218046