14 июля 2023

Многострочные строковые литералы в Delphi 12

    Продолжим тему строковых литералов в Delphi 12. Кроме длинных строковых литералов в компилятор Delphi 12 добавлена поддержка многострочных строковых литералов. Больше не будет необходимости, как раньше, объединять строки в один строковый литерал используя оператор "+".
Многострочные строковые литералы в Delphi 12
Многострочная строка начинается и заканчивается тройными кавычками ('''). Между ними находятся строки текста. При этом на строке с тройными кавычками текста быть не должно.

    Несколько примеров корректного объявления строковых литералов в Delphi 12:

const
  str1 = 'ABC'; // однострочная строка
  str2 = ''; // пустая строка
  str3 = '''' ; // однострочная строка с кавычкой

  // многострочные строки
  
  strML = '''
    The quick brown fox jumps
    over the lazy dog.
  ''';
  
  strHTML = '''
    
  • Item 1
  • Item 2
  • Item 3
'''; strJSON = ''' [ {"id" : "1", "name" : "Large"}, {"id" : "2", "name" : "Medium"}, {"id" : "2", "name" : "Small"} ] '''; strSQL= ''' SELECT * FROM Customers WHERE Department = 'R&D' ORDER BY Name; ''';
Пример некорректного объявления многострочного строкового литерала (после тройных кавычек есть текст):
const
  strInvalidString= '''SELECT * 
    FROM Customers
    WHERE Department = 'R&D'
    ORDER BY Name; 
    ''';

    Необходимо помнить, что при копировании текста в буфер обмена есть вероятность скопировать невидимые управляющие символы или необычные символы Unicode, которые могут при вставке из буфера обмена в редактор кода RAD Studio 12 ввести редактор в заблуждение.

4 комментария:

  1. Это просто праздник какой-то. Спасибо за благую весть! Когда обещают 12?

    ОтветитьУдалить
    Ответы
    1. Анонимный26 июля, 2023 10:51

      Когда поправят все баги :)))

      Удалить
    2. На ru-board писали, что 15.09

      Удалить
    3. По аналогии с Delphi 11 - после того, как Microsoft выпустит windows 12 ;)

      Удалить