Skip to main content
Version: Legacy

Шаблоны строк в Kotlin



Что это?

Строковые шаблоны позволяют встраивать переменные и выражения прямо в строки с помощью символа $. Это упрощает форматирование и делает код чище.




Базовое использование

Вставка переменных

Пример
val name = "Анна"
println("Привет, $name!") // Привет, Анна!

Вставка выражений

Пример с выражением
val a = 5
val b = 3
println("Сумма: ${a + b}") // Сумма: 8

Доступ к свойствам

Пример с объектами
data class User(val login: String)
val user = User("admin")
println("Логин: ${user.login}") // Логин: admin



Многострочные строки

Тройные кавычки

Пример
val text = """
Строка 1
Строка 2
Строка 3
""".trimIndent()

println(text)
Вывод
Строка 1
Строка 2
Строка 3
trimIndent()

Удаляет начальные пробелы для красивого форматирования. Работает так же и без данного метода :/




Экранирование символов

Спецсимволы

Пример экранирования
println("Символ \$ не сработает") // Символ $ не сработает
println("Первая строка\nВторая строка")

RAW-строки

Пример без экранирования
val regex = """\d+\.\d+""".toRegex() // Регулярка для чисел с точкой
Уточнение

Представленный пример в буквальном смысле создает выражение, если не очень понятно обратитесь к ИИ. Просто в примере просто объяснить очень сложно...




Продвинутые сценарии

Логика внутри шаблонов

Условные выражения
val score = 85
println("Результат: ${if (score > 70) "✅ Успех" else "❌ Провал"}")

Форматирование чисел

Пример с форматированием
val price = 1234.5678
println("Цена: ${"%.2f".format(price)} ₽") // Цена: 1234.57 ₽



Ограничения
  • Нельзя использовать $ для полей nullable-типов без проверки на null:
    println("Значение: ${value?.length}")
  • Избегайте сложной логики внутри ${} для читаемости кода.