Специальный символ это экранированный символ?
Их разных интернет статей я понял, что... Экранирование - это своего рода процесс/механизм, при котором символ, используемый в коде, переводится в обычный строковый символ и начинает восприниматься как строка.
А что такое тогда специальный символ? Это любой экранированный символ?
К примеру, является ли /n экранированным символом? Как я понимаю, в этом случае это скорее всего просто символ, не экранированный. Потому что вроде бы как экранирование должно заставлять интерпретатор воспринимать конструкции языка как обычную строку. Ну а в данном случае n не переводится просто в строку как /" или /'.
Поэтому возникает вопрос. Что такое экранирование и спец символ? Возможно я неправильно понимаю смысл слова "экранирование", возможно специальные символы - это необязательно все экранированные символы. Хочется правильно употреблять термины)
Ответы (1 шт):
Специальный символ — довольно широкое и вряд ли точно определённое понятие. Наверное, можно сказать, что любой символ может быть специальным, если его используют не в буквальном строковом значении, а наделяют особым дополнительным смыслом.
Экранирование обычно служит для противоположного — чтобы вернуть специальному символу его обычное строковое значение.
С этой точки зрения, \n это специальный символ — или скорее специальное сочетание символов — для перевода строки, потому что здесь \ и n не означают косой черты и буквы 'n'. Но если мы экранируем это: \\n, тогда это сочетание превращается в обычное сочетание косой черты и буквы 'n'.
Точно так же: если кавычки встречаются в строке, они воспринимаются как спецсимвол окончания этой строки. Но если мы их экранируем, им возвращается обычное строковое значение в составе этой строки и они перестают быть спецсимволом.
Можно сказать, что экранированный спецсимвол — это спецсимвол, переставший быть таковым.