Une application sur laquelle je travaille comporte un champ dans lequel une chaîne peut être saisie. Les caractères spéciaux de la chaîne provoquent l'insertion de différentes choses lors de l'évaluation de la chaîne, mais ces caractères spéciaux peuvent être précédés d'un caractère d'échappement (une barre oblique inverse) qui provoque la sortie littérale du caractère spécial plutôt que sa signification particulière . Pensez-y comme semblable à une expression régulière: .
correspond à n'importe quel caractère, mais \.
correspond à un point.Que doit faire un caractère d'échappement si le caractère suivant n'a pas besoin d'être échappé?
Quelle est la chose la plus intuitive à se produire lorsque le caractère d'échappement est suivi par un caractère qui n'a pas besoin d'échapper? Par exemple, serait-il plus logique que:
- Le caractère d'échappement « échappe » littéral comme lui-même:
\f
devientf
(« un f échappé ») - Le caractère d'échappement n'est pas un caractère d'échappement à moins il est suivi d'un caractère spécial:
\f
reste comme\f
- Erreur! Lève une exception car il est invalide d'avoir un caractère d'échappement n'échappant à rien
Tout cela est possible et à mon avis justifiable. Mais qui a plus de sens, et qui est déjà le plus commun dans d'autres langues?
Oui, ceci. Ne pas pénaliser quelqu'un pour ne pas savoir qu'un personnage n'a pas besoin d'être échappé. – Vicky
En outre, c'est la convention dans la plupart des langues de toute façon. Donc, c'est le comportement le plus attendu. – slebetman