Перейти к основному содержимому

Многострочные литералы

Если необходимо создать литерал из многострочной строки, то это можно сделать следующими способами:

  1. Оформив один литерал на разных строках, при этом каждая подстрока (включая первую) должна начинаться с новой строки. Открывающая кавычка является первым значащим символом строки (в следующем примере цифры во второй и третьей строке приведены для удобства объяснения и не должны указываться в реальной программе):

    пер МногострочноеЗначение =
    1 2
    12345678901234567890
    " первая подстрока
    вторая подстрока
    третья подстрока"

    Символ, следующий за открывающей кавычкой литерала, является первым символом получающейся строки. При этом позиция этого символа в исходном тексте будет являться левой границей всех следующих подстрок. Относительно этой границы будут формироваться подстроки. В примере выше границей строки будет символ пробела в 5-ой позиции первой подстроки. И, следовательно, левая граница многострочной строки будет находиться в позиции 5. Во всех подстроках, кроме первой, от начала строки модуля до позиции левой границы допускаются только символы пробела.

    Каждая подстрока, кроме первой, будет начинаться с первого непробельного символа, если он расположен левее границы, или с символа, расположенного в позиции левой границы. В примере первым символом второй подстроки будет символ «в» (3 позиция), так как это непробельный символ и он расположен левее левой границы. Но третья подстрока начнется с двух символов пробела (позиции 5 и 6). Это связано с тем, что подстрока начинается с позиции левой границы (это позиция 5).

    Из описания литерала удаляются все пробельные символы от последнего значащего символа подстроки до конца строки модуля — во всех подстроках, кроме последней. Из последней подстроки в результирующую подстроку подпадут все символы, которые находятся между позицией левой границы и символом закрывающей кавычки (исключая сам символ кавычки).

    В качестве символа-разделителя подстрок при таком способе описания многострочной строки всегда выступает символ новой строки ( или \n). Допустимо использовать экранируемые символы, в том числе переносы строк.

    Получившаяся в примере строка эквивалентна строке, которая будет получена в следующем примере создания многострочной строки.

  2. Указав в строке управляющую последовательность «новая строка»:

    пер МногострочноеЗначение = " первая подстрока\нвторая подстрока\н  третья подстрока"