Многострочные литералы
- Оформив один литерал на разных строках, при этом каждая подстрока (включая первую)
должна начинаться с новой строки. Открывающая кавычка является первым значащим
символом строки (в следующем примере цифры во второй и третьей строке приведены для
удобства объяснения и не должны указываться в реальной
программе):
пер МногоСтрочноеЗначение = 1 2 12345678901234567890 " первая подстрока вторая подстрока третья подстрока"
Символ, следующий за открывающей кавычкой литерала, является первым символом получающейся строки. При этом позиция этого символа в исходном тексте будет являться левой границей всех следующих подстрок. Относительно этой границы будут формироваться подстроки. В примере выше границей строки будет символ « » в 5-ой позиции первой подстроки. И, следовательно, левая граница многострочной строки будет находиться в позиции 5. Во всех подстроках, кроме первой, от начала строки модуля до позиции левой границы допускаются только символы пробела.
Каждая подстрока, кроме первой, будет начинаться с первого не пробельного символа, если он расположен левее границы, или с символа, расположенного в позиции левой границы. В примере первым символом второй подстроки будет символ «в» (3 позиция), так как это не пробельный символ и он расположен левее левой границы. Но третья подстрока начнется с двух символов « » (позиции 5 и 6). Это связано с тем, что подстрока начинается с позиции левой границы (это позиция 5).
Из описания литерала удаляются все пробельные символы от последнего значащего символа подстроки до конца строки модуля — во всех подстроках, кроме последней. Из последней подстроки в результирующую подстроку подпадут все символы, которые находятся между позицией левой границы и символом закрывающей кавычки (исключая сам символ кавычки).
В качестве символа-разделителя подстрок при таком способе описания много строчной строки всегда выступает символ новой строки (
\н
или\n
). Допустимо использовать экранируемые символы, в том числе переносы строк.Получившаяся в примере строка эквивалентна строке, которая будет получена в следующем примере создания многострочной строки.
- Указав в строке управляющую последовательность «новая
строка»:
пер МногоСтрочноеЗначение = " первая подстрока\нвтораяподстрока\н третья подстрока"