Полное руководство по интерполятору необработанных строк и интерполятору S-строки в Scala

Scala предоставляет мощные механизмы интерполяции строк, которые позволяют разработчикам встраивать выражения и переменные в строковые литералы. Два наиболее часто используемых интерполятора в Scala — это интерполятор необработанной строки и интерполятор строки s. В этой статье мы рассмотрим различия между этими двумя интерполяторами и приведем примеры кода, иллюстрирующие их использование.

  1. Интерполятор необработанных строк:
    Интерполятор необработанных строк обозначается префиксом «raw» перед открывающей кавычкой. Он воспринимает обратную косую черту буквально и не интерпретирует escape-последовательности, такие как символы новой строки или табуляции. Это особенно полезно при работе с регулярными выражениями или путями к файлам.

Пример:

val regex = raw"\d{4}-\d{2}-\d{2}"
println(regex) // Output: \d{4}-\d{2}-\d{2}
  1. Интерполятор строки S:
    Интерполятор строки s обозначается префиксом «s» перед открывающей кавычкой. Он позволяет встраивать выражения и переменные непосредственно в строку, как и другие интерполяторы строк. Однако он также поддерживает параметры форматирования с использованием знакомого синтаксиса в стиле printf.

Пример:

val name = "John"
val age = 30
val message = s"My name is $name and I'm $age years old."
println(message) // Output: My name is John and I'm 30 years old.
  1. Экранирование символов.
    Оба интерполятора позволяют экранировать символы с помощью символа обратной косой черты (). Например, если вы хотите включить знак доллара ($) в качестве буквального символа в строку s, вам нужно экранировать его обратной косой чертой (\$).

Пример:

val amount = 100
val message = s"\$$amount is a large sum."
println(message) // Output: $100 is a large sum.

Подводя итог, можно сказать, что интерполятор необработанных строк обрабатывает содержимое строки буквально, а интерполятор строк s оценивает выражения и поддерживает параметры форматирования. Понимание различий между этими двумя интерполяторами поможет вам выбрать подходящий в зависимости от вашего конкретного случая использования.