Интерполяция строк
Строковые литералы поддерживают интерполяцию строк. Интерполяция строк — это процесс вычисл ения значения строкового литерала, включающего одно или несколько выражений интерполяции.
Интерполяцию строк можно рассматривать как удобный и понятный синтаксис для конкатенации строк, совмещенный с возможностями форматирования значений выражений.
Другими словами, интерполяция строк позволяет вставлять значения переменных в строки.
Синтаксис
Поддерживаются следующие варианты синтаксиса выражения интерполяции:
-
%
имя-переменнойВ этом случае для преобразования значения используется метод
ВСтроку()
:// Краткая форма - %имя-переменной
пер Обращение = "Иван Иванович"
пер Сообщение = "Дорогой %Обращение!"// Полная форма - %{выражение}
пер Длина = 100
пер Ширина = 30
пер Сообщение = "Площадь равна %{Длина * Ширина} м2" -
$
имя-переменнойВ этом случае для преобразования значения используется метод
Представление()
:// Краткая форма - $имя-переменной
пер Обращение = "Иван Иванович"
пер Сообщение = "Дорогой $Обращение!"// Полная форма - ${выражение}
пер Длина = 100
пер Ширина = 30
пер Сообщение = "Площадь равна ${Длина * Ширина} м2"// С форматированием - ${выражение|формат}
пер Сейчас = ДатаВремя.Сейчас()
пер Сообщение = "Текущая дата ${Сейчас|дд ММММ гггг, дддд}"
Для обоих вариантов краткого синтаксиса (%
имя-переменной и $
имя-переменной):
- имя-переменной — это последовательность символов, образующая допустимое имя переменной.
- Символ после имя-переменной не должен быть буквой, цифрой или знаком подчеркивания.
- Указанное имя-переменной должно быть доступно в текущей области видимости.
Например, в выражении %Переменная.Поле
имя переменной — это Переменная. Это выражение эквивалентно %{Переменная}.Поле
.
Интерполяция с форматированием
Форматная строка формат в выражении интерполяции допустима, только если результат вычисления выражения имеет тип, одним из предков которого является тип Форматируемое
.
Форматная строка отделяется от выражения символом |
(вертикальная черта). Содержимое форматной строки определяется типом выражения.
Примеры использования интерполяции
знч Стр_Значение = Истина
знч Стр_Дата = Дата{2020-12-11}
знч Стр_Конкат = "" + Стр_Значение // "Истина"
знч Стр_Интер1 = "%Стр_Значение" // "Истина"
знч Стр_Интер2 = "$Стр_Значение" // "Истина"
знч Стр_Интер3 = "%{Стр_Значение}" // "Истина"
знч Стр_Интер4 = "${Стр_Значение}" // "Истина"
знч Стр_Интер5 = "${Стр_Дата|дд}" // "11"
знч Стр_Интер6 = "${Стр_Дата|дд ММММ гггг, дддд}" // "11 декабря 2020, пятница"