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