Интерполяция строк
s, f и raw
«Интерполяция строк» — бесплатный урок Scala for Backend Engineering & Functional Programming на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Scala for Backend Engineering & Functional Programming, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Scala for Backend Engineering & Functional Programming содержит 4 уроков всего.
Что такое интерполяция строк?
Интерполяция строк позволяет вставлять значения прямо в строковый литерал вместо объединения строк с помощью +.
Перед строкой ставится буква, например s, f или raw, а затем для вставки значений используется $.
Интерполятор s
Интерполятор s вставляет значение переменной в место, где Вы написали $name.
Это самый распространённый интерполятор, заменяющий громоздкое объединение строк.
object Main {
def main(args: Array[String]): Unit = {
val name = "Ada"
println(s"Hello, $name!")
}
}Выражения в фигурных скобках
Если требуется вставить не простую переменную, заключите выражение в ${ ... }.
Фигурные скобки указывают интерполятору, где выражение начинается и заканчивается.
object Main {
def main(args: Array[String]): Unit = {
val a = 4
val b = 6
println(s"Sum is ${a + b}")
}
}Вызов методов внутри
Методы также можно вызывать внутри ${ ... }. Подойдёт любое корректное выражение.
object Main {
def main(args: Array[String]): Unit = {
val word = "scala"
println(s"Upper: ${word.toUpperCase}")
}
}Интерполятор f
Интерполятор f добавляет форматирование в стиле printf. После выражения указывается формат, например %.2f для двух знаков после запятой.
Это особенно удобно для денежных значений, процентов и выровненного вывода.
object Main {
def main(args: Array[String]): Unit = {
val price = 9.5
println(f"Price: $$$price%.2f")
}
}Форматирование целых чисел
Интерполятор f также форматирует целые числа: например, %d задаёт десятичное целое число, а %05d дополняет его нулями.
object Main {
def main(args: Array[String]): Unit = {
val id = 42
println(f"ID: $id%05d")
}
}Интерполятор raw
Интерполятор raw работает как s, но не обрабатывает escape-последовательности.
Поэтому \n остаётся двумя символами: обратной косой чертой и n, а не превращается в перевод строки.
object Main {
def main(args: Array[String]): Unit = {
println(raw"line1\nline2")
}
}Сравнение s и raw
С интерполятором s escape-последовательность \n превращается в настоящий перевод строки. С raw она остаётся обычным текстом.
Используйте raw для путей, шаблонов регулярных выражений и любых других случаев, когда обратные косые черты нужно сохранить.
object Main {
def main(args: Array[String]): Unit = {
println(s"a\nb")
println(raw"a\nb")
}
}Многострочная интерполяция
Интерполяция работает и со строками в тройных кавычках, которые могут занимать несколько строк.
Это удобно для создания читаемого вывода по шаблону.
object Main {
def main(args: Array[String]): Unit = {
val user = "Grace"
val score = 95
println(s"""User: $user
Score: $score""")
}
}Экранирование знака доллара
Чтобы вывести в интерполированной строке сам знак доллара, запишите $$.
Так интерполятор не примет его за начало переменной.
object Main {
def main(args: Array[String]): Unit = {
val amount = 20
println(s"Cost: $$$amount")
}
}Собираем всё вместе
Объединим в одном интерполированном сообщении обычные переменные, выражение в фигурных скобках и вызов метода.
object Main {
def main(args: Array[String]): Unit = {
val item = "book"
val qty = 3
val each = 12.0
println(s"$qty ${item}s cost ${qty * each}")
}
}Быстрая проверка
Проверьте свои знания об интерполяторах.
Итоги
Вы изучили три основных интерполятора строк Scala:
sвставляет переменные и выражения${expr}fдобавляет форматирование в стиле printf, например%.2fи%05drawсохраняет escape-последовательности как обычный текст- Для вывода самого знака доллара используйте
$$ - Интерполяция также работает с многострочными строками в тройных кавычках
Часто задаваемые вопросы
Урок «Интерполяция строк» бесплатный?
Да — полный текст урока «Интерполяция строк» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Scala for Backend Engineering & Functional Programming, подпишись на CoddyKit PRO. Курс Scala for Backend Engineering & Functional Programming содержит 4 уроков всего.
Чему я научусь в уроке «Интерполяция строк»?
s, f и raw Ты практикуешь Scala for Backend Engineering & Functional Programming с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Scala for Backend Engineering & Functional Programming?
Предыдущий опыт не требуется. Scala for Backend Engineering & Functional Programming на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Интерполяция строк»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Scala for Backend Engineering & Functional Programming?
Да. Каждый урок Scala for Backend Engineering & Functional Programming включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Использование REPL
- val, var и типы
- Выражения вместо инструкций
- Интерполяция строк