В приложении, над которым я работаю, есть поле, в которое можно ввести строку.
Специальные символы в строке приводят к тому, что при вычислении строки вставляются разные элементы, но этим специальным символам может предшествоватьс помощью escape-символа (обратной косой черты), который заставляет специальный символ выводиться буквально, а не в его специальном значении.
Думайте о нем как о регулярном выражении: .
соответствует любому символу, но \.
соответствуетточка.
Что наиболее интуитивно понятно, что происходит, когда за экранирующим символом следует персонаж, которому не нужно убегать?Например, имело бы больше смысла, что:
- Экранирующий символ "экранирует" литерал как сам по себе:
\f
становится f
("экранированный f") - Экранирующий символ не является экранирующим, если за ним не следует специальный символ:
\f
остается как \f
- Ошибка!Бросьте исключение, потому что недопустимо иметь escape-символ, который ничего не экранирует
Все это возможно и, на мой взгляд, оправдано.Но что имеет больше смысла, и которое уже наиболее распространено в других языках?