4
基本的に私はKotlinの文字列補間がJava(デコンパイルされたバイトコード)でどのように見えるか疑問に思っています。最初は、StringBuffer(またはStringBuilder)、またはString.format()を使用すると思っていましたが、連結を行っているようです。それは本当に最適なのですか?ストリングプールはどうですか?ここでKotlinの文字列補間がJavaで文字列を連結するのはなぜですか?
は私Kotlinコードです:文字列が巨大であり、値がされている場合でも
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);
}
}
:
fun main(args: Array<String>) {
val age : Int = 24
var mySuperString : String = "Dato is ${age} years old!"
println(mySuperString)
}
そして、ここでは、私は、フォーム*の.classファイルを逆コンパイルしましたJavaコードであります多く、それはまだプラス記号を使用しています!
これが最速の方法ですか、なぜこれを行うのですか?
デコンパイル済みコード=バイトコードとは誰ですか? –
@AbhijitSarkarだから私は間違っていた。バイトコードでは1つの文字列かもしれませんが、逆コンパイルするとプラス記号になりますか?ああ、O.K。たぶんそれはそうだ。 – user218046