0Pricing
Scala for Backend Engineering & Functional Programming · Урок

Интерполяция строк

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 и %05d
  • raw сохраняет 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 — локальная установка не требуется.

Все уроки этого курса

  1. Использование REPL
  2. val, var и типы
  3. Выражения вместо инструкций
  4. Интерполяция строк
← Назад к Scala for Backend Engineering & Functional Programming