Шаблоны строк в 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}")
- Избегайте сложной логики внутри
${}
для читаемости кода.