Подтвердить что ты не робот

Какова цель "escape-последовательности"?

Возможный дубликат:
Какое обоснование позволяет избежать`? `?

Если я могу это сделать:

string i = "'";

Зачем это:

string i = "\'";
4b9b3361

Ответ 1

Вам нужно это, если вы хотите символьный литерал:

char apos = '\'';

Ответ 2

Вам это нужно, если вам нужен ' char:

char c = '\'';

Ответ 3

Я думаю, что это просто для согласованности между символьными константами и строковыми литералами.

Язык мог потребовать строковый литерал, содержащий один апостроф, который должен быть записан как "'", а не как "\'", символьная константа, содержащая двойную кавычку, которая должна быть записана как '"', а не как '\"'. (И, конечно, "'" и '"' оба абсолютно правильны.)

Предоставление, но не требующее, ' для экранирования в строковых литералах и " для экранирования в символьных константах, делает язык немного более гибким, позволяет строковым литералам и символьным константам использовать один и тот же набор побегов и не наносит особого вреда.

Что касается того, почему вы должны использовать одну или другую форму, это до вас. Используйте любую форму, с которой вам удобнее.

Ответ 4

Как сказал Керрек, вы избегаете символа, если вам нужен буквальный символ, а не оцененный. Например, "\" или буквальная скобка внутри регулярного выражения. Он не позволяет интерпретатору оценивать escape-символ как что-либо, кроме фактического значения символа.

Ответ 5

Предположим, что если вы хотите сгенерировать html для привязки с serveride, очевидно, вы будете использовать string.format, как показано ниже...

  X = string.Format("<a href=\"tel:{0}\" onclick=\"Javascript: goog_report_conversion({1}); return false;\">{0}</a>", displayText, sRegPhone);

нам нужны двойные кавычки для вызова функции и href в привязке, но будут ошибки для использования как показано ниже на сервере в заявлении..

  "<a href="tel:{0}""></a>

поэтому, чтобы преодолеть это, мы используем escape-последовательность, которая, в свою очередь, ускоряет (не будет рассматривать) следующий литерал на стороне сервера, но будет генерировать вместе с этим пропущенным литералом в области вывода или на стороне клиента..like ниже

<a onclick="Javascript: goog_report_conversion(2818669180); return false;" href="tel:(281) 866-9180">(281) 866-9180</a>

поэтому в основном он используется для ускорения предстоящего литерала......

Ответ 6

на простом английском языке Я могу сказать, что авторы языка должны были использовать некоторые специальные символы для компиляции кода

поэтому, чтобы позволить программистам использовать эти символы, они использовали метод использования "/"

он преобладает почти на всех языках

Ответ 7

\ - символ, используемый для выхода из "специальных символов". Что это значит?

Это означает, что парсер делает магические вещи, когда сталкивается с определенными символами. Эти магические вещи - это изменения состояния во время разбора. Изменение состояния - это что-то вроде: теперь вы вводите строковый литерал, теперь вы переходите к следующей строке, теперь вы оставляете константу символа и т.д.

Символ '\' был выбран для подавления магического значения предшествующего персонажа. Таким образом, \ в конце строки будет подавлять его значение, позволяя создавать, например, макросы на нескольких строках в редакторе, но рассматривается как 1 лексем на предварительном процессоре (препроцессор использует новую строку как разделитель).

Если вам предшествует " с \, он будет подавлять его значение начала или конца строкового литерала, то же самое с '.

Было также созвано, что \, предшествующий не магическому персонажу, будет проигнорирован (вы не можете подавить магию, когда ее нет). Поэтому не стоит писать "\". ' не имеет магического значения внутри строкового литерала, и экранирование просто игнорируется. Вы можете предшествовать любому символу \ в строковом литерале без проблем (кроме цифр курса и x для восьмеричных, десятичных и шестнадцатеричных символов).