Интерполяция строк в Kotlin позволяет легко объединять константные строки и переменные для создания новой строки — элегантно и читабельно. В этой статье мы посмотрим, как работает интерполяция под капотом, проанализируем сгенерированный байткод, а также рассмотрим возможные будущие оптимизации текущей реализации. Начнём с простого и знакомого примера: class Person(val firstName: String, val lastName: String, val age: Int) {
override fun toString(): String {
return "$firstName $lastName is $age years old"
}
} Как видно, мы используем интерполяцию строк для реализации метода toString(). Чтобы понять, как компилятор Kotlin реализует эту конструкцию, сначала скомпилируем класс с помощью kotlinc: >> kotlinc interpolation.kt Затем используем инструмент javap, чтобы заглянуть в байткод: >> javap -c -p com.baeldung.interpolation.Person Вывод (сокращённый): >> javap -c -p com.baeldung.interpolation.Person
// truncated
public java.lang.String toString();
Code:
0: new