Многострочные строки
Используйте блоки в тройных кавычках.
«Многострочные строки» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Основы строк
- Интерполяторы s, f и raw
- Распространённые методы строк
- Многострочные строки