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

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

Используйте блоки в тройных кавычках.

«Многострочные строки» — бесплатный урок 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 уроков всего.

Что такое многострочные строки?

Иногда требуется текст, занимающий несколько строк, например сообщение, JSON или SQL-запрос.

Scala позволяет записывать такой текст с помощью тройных кавычек, которые точно сохраняют переносы строк в том виде, в каком Вы их вводите.

val text = """Line one
Line two"""
println(text)

Синтаксис с тройными кавычками

Заключите текст с обеих сторон в три двойные кавычки: """...""".

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

val json = """{"name": "Ada"}"""
println(json)

Настоящие переводы строк

В строке в тройных кавычках нажатие клавиши Enter создаёт настоящий перевод строки в значении.

Это удобно для блоков текста, в которых нужно сохранить форматирование.

object Main extends App {
  val poem = """Roses are red
Scala is neat"""
  println(poem)
}

Проблема отступов

Если в коде Вы добавите отступ к многострочной строке, начальные пробелы станут частью её значения.

При выводе это часто выглядит неаккуратно. Scala предлагает простой способ убрать отступы.

val msg = """Hello
    World"""
println(msg)

stripMargin

stripMargin удаляет начальные пробельные символы до символа отступа, которым по умолчанию является |.

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

val msg = """Hello
    |World""".stripMargin
println(msg)

Аккуратный многострочный блок

Сочетание тройных кавычек и stripMargin делает код понятным, а вывод — аккуратным.

Каждая строка начинается с |, который удаляется при выводе.

object Main extends App {
  val report = """Report
    |Total: 5
    |Done!""".stripMargin
  println(report)
}

Настраиваемый символ отступа

Если символ | встречается в Вашем тексте, Вы можете передать в stripMargin другой символ отступа.

Например, вместо него используйте # как маркер отступа.

val s = """One
    #Two""".stripMargin('#')
println(s)

Многострочный текст с интерполяцией

Вы можете сочетать тройные кавычки с интерполятором s, чтобы вставлять значения в многострочный текст.

Поместите s перед открывающими тройными кавычками, а затем используйте $variable как обычно.

val name = "Sam"
val msg = s"""Hi $name,
    |Welcome aboard!""".stripMargin
println(msg)

Создание SQL-запроса

Многострочные строки особенно удобны при написании SQL и другого длинного текста в серверном коде.

Форматирование остаётся понятным и в исходном коде, и в выводе.

val query = """SELECT id, name
    |FROM users
    |WHERE active = true""".stripMargin
println(query)

Кавычки внутри кавычек

Внутри тройных кавычек обычные двойные кавычки не нужно экранировать. Это избавляет от нагромождения конструкций \".

Такой синтаксис идеально подходит для встраивания JSON или фраз в кавычках.

val line = """He said "hello" to me"""
println(line)

Сочетание с методами

Многострочная строка всё ещё является обычным String, поэтому с ней работают все стандартные методы.

Здесь после удаления отступов мы убираем пробелы по краям и подсчитываем длину.

val block = """abc
    |def""".stripMargin
println(block.length)
println(block.toUpperCase)

Быстрая проверка

Как удалить начальные отступы из многострочной строки?

Итоги

Вы научились записывать многострочный текст с помощью тройных кавычек """...""", которые сохраняют переводы строк и не требуют экранирования кавычек.

Вы использовали stripMargin с маркером |, чтобы сохранить аккуратность кода, сочетали его с интерполятором s и применяли к результату обычные методы строк.

Часто задаваемые вопросы

Урок «Многострочные строки» бесплатный?

Да — полный текст урока «Многострочные строки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Scala for Backend Engineering & Functional Programming, подпишись на CoddyKit PRO. Курс Scala for Backend Engineering & Functional Programming содержит 4 уроков всего.

Чему я научусь в уроке «Многострочные строки»?

Используйте блоки в тройных кавычках. Ты практикуешь 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. Основы строк
  2. Интерполяторы s, f и raw
  3. Распространённые методы строк
  4. Многострочные строки
← Назад к Scala for Backend Engineering & Functional Programming