Введение
Обозначение для представления строки в исходном коде. Строковый литерал или анонимная строка — это литеральное представление строкового значения в исходном коде компьютерной программы. Современные языки программирования обычно используют последовательность символов, заключенную в кавычки, формально называемую "ограничителями", как в примере x = "foo", где "foo" — строковый литерал со значением foo. Такие методы, как экранирующие последовательности, могут использоваться для решения проблемы конфликта ограничителей (возникновения проблем с кавычками) и позволяют включать ограничители в строку. Существует множество альтернативных способов задания строковых литералов, особенно в сложных случаях. Конкретный синтаксис зависит от используемого языка программирования. Тем не менее, большинство современных языков программирования следуют общим принципам.
A string literal or anonymous string is a literal for a string value in the source code of a computer program. Modern programming languages commonly use a quoted sequence of characters, formally "bracketed delimiters", as in x = "foo", where "foo" is a string literal with value foo. Methods such as escape sequences can be used to avoid the problem of delimiter collision (issues with brackets) and allow the delimiters to be embedded in a string. There are many alternate notations for specifying string literals especially in complicated cases. The exact notation depends on the programming language in question. Nevertheless, there are general guidelines that most modern programming languages follow.
Столкновение с ограничителем
При использовании кавычек, если требуется представить сам символ-разделитель в строковом литерале, возникает проблема коллизии разделителей. Например, если разделителем является двойная кавычка, нельзя просто представить саму двойную кавычку как """, поскольку вторая кавычка интерпретируется как конец строкового литерала, а не как часть значения строки, и аналогично нельзя написать "Это "в кавычках", что является недопустимым", так как средняя часть, заключенная в кавычки, интерпретируется как находящаяся вне кавычек. Существуют различные решения, наиболее универсальным из которых является использование экранирующих последовательностей, таких как "\"" или "This is \"in quotes\" и корректное экранирование". Но есть и другие решения. Парные кавычки, такие как фигурные скобки в Tcl, позволяют создавать вложенные строки, например, {foo {bar} zork}, но не решают проблему коллизии разделителей, поскольку несбалансированный закрывающий разделитель нельзя просто включить, например, {.