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