Введение

Обозначение для представления строки в исходном коде. Строковый литерал или анонимная строка — это литеральное представление строкового значения в исходном коде компьютерной программы. Современные языки программирования обычно используют последовательность символов, заключенную в кавычки, формально называемую "ограничителями", как в примере x = "foo", где "foo" — строковый литерал со значением foo. Такие методы, как экранирующие последовательности, могут использоваться для решения проблемы конфликта ограничителей (возникновения проблем с кавычками) и позволяют включать ограничители в строку. Существует множество альтернативных способов задания строковых литералов, особенно в сложных случаях. Конкретный синтаксис зависит от используемого языка программирования. Тем не менее, большинство современных языков программирования следуют общим принципам.

Столкновение с ограничителем

При использовании кавычек, если требуется представить сам символ-разделитель в строковом литерале, возникает проблема коллизии разделителей. Например, если разделителем является двойная кавычка, нельзя просто представить саму двойную кавычку как """, поскольку вторая кавычка интерпретируется как конец строкового литерала, а не как часть значения строки, и аналогично нельзя написать "Это "в кавычках", что является недопустимым", так как средняя часть, заключенная в кавычки, интерпретируется как находящаяся вне кавычек. Существуют различные решения, наиболее универсальным из которых является использование экранирующих последовательностей, таких как "\"" или "This is \"in quotes\" и корректное экранирование". Но есть и другие решения. Парные кавычки, такие как фигурные скобки в Tcl, позволяют создавать вложенные строки, например, {foo {bar} zork}, но не решают проблему коллизии разделителей, поскольку несбалансированный закрывающий разделитель нельзя просто включить, например, {.