À quoi la barre oblique inverse s'échappe-t-elle vraiment?
Il est utilisé comme personnage en fuite. Mais je me demande toujours ce qui s'échappe ou ce qui échappe.
Je sais que "\ n" désigne une nouvelle ligne. Mais d'où vient l'évasion? pourquoi c'est appelé comme ça?
programming-languages
Mr Coder
la source
la source
Réponses:
La barre oblique inverse est utilisée comme caractère marqueur pour indiquer au compilateur / interprète que le caractère suivant a une signification particulière. La signification de ce caractère suivant dépend de l'implémentation. Par exemple, les langages de style C utilisent \ n pour signifier la nouvelle ligne et \ t pour signifier tab.
L'utilisation du mot "échapper" signifie vraiment s'échapper temporairement de l'analyse du texte et dans un autre mode où le caractère suivant est traité différemment.
la source
:))
C'est un terme lié à celui d'une séquence d'échappement et d'une touche Esc (d'échappement).
Le personnage lui-même ne "fuit" aucun autre personnage. On pourrait dire que le caractère suivant le caractère d'échappement (par exemple, \ n de votre exemple) échappe au sort d'être utilisé comme un n ordinaire dans une application, et est utilisé à la place comme une nouvelle ligne.
la source
Les séquences d'échappement ont beaucoup en commun avec le concept de communication hors bande :
Disons que vous effectuez un transfert de fichiers sur un port série et que vous négociez avec l'ordinateur à l'autre bout: "OK, voici le fichier". Étant donné que dans le cas général, tous les caractères peuvent être des caractères de fichier valides (s'il s'agit d'un fichier ASCII), vous rencontrez des problèmes:
Diverses personnes à travers l'histoire de l'informatique ont mis en œuvre de nombreuses méthodes différentes pour contourner ce problème.
Dans le cas de chaînes littérales dans un langage de programmation, c'est un problème similaire. La première citation dit "voici la chaîne - commencez à lire jusqu'à ce que vous obteniez une autre citation". Bien sûr, alors vous avez le problème d'envoyer un caractère de citation, alors ils ont inventé la séquence d'échappement slash. Si vous voyez une barre oblique puis une citation, alors c'est une citation littérale, pas la fin de la chaîne. Malheureusement, vous venez d'avaler une araignée pour manger une mouche, car maintenant vous ne pouvez pas envoyer la combinaison littérale slash-quote. Ainsi, vous pouvez échapper à une barre oblique avec une autre barre oblique. Donc slash-slash signifie slash, slash-quote signifie quote. Cela leur a permis d'utiliser une barre oblique pour d'autres caractères non imprimables ou difficiles à imprimer comme les retours chariot, les sauts de ligne, les tabulations, etc.
la source
C'est une évasion du contexte d'analyse , qui demande (quel méchant)
n
d'être interprété commen
plutôt que comme unnewline
.La distinction la plus intéressante à ce sujet est qu'un échappement ne change pas le contexte d'analyse comme le
"
ferait un caractère de citation (ou de nombreux autres symboles), nécessitant qu'un autre"
(ou un autre symbole) revienne au contexte précédent. Ils prennent juste une petite diversion mais reprennent la route dès que possible.Pourtant, personne ne parle plus de l' analyse des contextes , autant que personne ne semble plus écrire d'analyseurs depuis l'avènement de xml et json. Certains problèmes cessent d'être courants, entrent dans une niche et des concepts de niche étranges comme celui-ci persistent.
la source