Wem entgeht der Backslash wirklich?
Es wird als Fluchtcharakter verwendet. Aber ich frage mich immer, was entkommt oder wovor entkommt.
Ich weiß, dass "\ n" eine neue Zeile kennzeichnet. Aber woher kommt die Flucht? Warum heißt es so?
programming-languages
Herr Coder
quelle
quelle
Antworten:
Der Backslash wird als Markierungszeichen verwendet, um dem Compiler / Interpreter mitzuteilen, dass das nächste Zeichen eine besondere Bedeutung hat. Was dieser nächste Charakter bedeutet, hängt von der Implementierung ab. Zum Beispiel verwenden Sprachen im C-Stil \ n für Newline und \ t für Tab.
Die Verwendung des Wortes "Escape" bedeutet wirklich, dass der Text vorübergehend nicht analysiert und in einen anderen Modus übergegangen wird, in dem das nachfolgende Zeichen anders behandelt wird.
quelle
:))
Dieser Begriff bezieht sich auf eine Escape-Sequenz und eine Esc- Taste (Escape-Taste).
Der Charakter selbst "rennt" vor keinem anderen Charakter davon. Man könnte sagen, dass das Zeichen, das auf das Escape-Zeichen folgt (sagen wir, \ n aus Ihrem Beispiel), dem Schicksal entgeht, in einigen Anwendungen als normales n verwendet zu werden, und stattdessen als Zeilenumbruch verwendet wird.
quelle
Escape-Sequenzen haben viele Gemeinsamkeiten mit dem Konzept der Out-of-Band- Kommunikation:
Angenommen, Sie führen eine Dateiübertragung über eine serielle Schnittstelle durch und verhandeln mit dem Computer am anderen Ende: "OK, hier kommt die Datei". Da im Allgemeinen alle Zeichen gültige Dateizeichen sein können (wenn es sich um eine ASCII-Datei handelt), treten einige Probleme auf:
Verschiedene Personen in der Geschichte des Computers haben viele verschiedene Methoden implementiert, um dieses Problem zu umgehen.
Bei Literalzeichenfolgen in einer Programmiersprache ist dies ein ähnliches Problem. Das erste Zitat lautet "Hier kommt die Zeichenfolge - fange an zu lesen, bis du ein anderes Zitat erhältst". Dann haben Sie natürlich das Problem, ein Anführungszeichen zu senden, und haben die Schrägstrich-Escape-Sequenz erfunden. Wenn Sie einen Schrägstrich und dann ein Zitat sehen, ist dies ein wörtliches Zitat und nicht das Ende der Zeichenfolge. Leider haben Sie gerade eine Spinne geschluckt, um eine Fliege zu fressen, denn jetzt können Sie die wörtliche Kombination aus Schrägstrich und Anführungszeichen nicht mehr senden. So können Sie einem Schrägstrich einen weiteren Schrägstrich entziehen. Slash-Slash bedeutet also Slash, Slash-Quote bedeutet Quote. Dadurch konnten sie Schrägstriche für andere nicht druckbare oder schwer druckbare Zeichen wie Zeilenumbrüche, Zeilenvorschübe, Tabulatoren usw. verwenden.
quelle
Es ist eine Flucht aus dem Analysekontext , die verlangt (was für ein Bösewicht)
n
, alsn
statt als interpretiert zu werdennewline
.Der interessanteste Unterschied dabei ist, dass ein Escape den Analysekontext nicht so ändert, wie es ein Anführungszeichen
"
(oder viele andere Symbole) tun würden, und dass ein anderes"
(oder ein anderes Symbol) erforderlich ist , um zum vorherigen Kontext zurückzukehren. Sie nehmen nur eine kleine Ablenkung, gehen aber so schnell wie möglich wieder auf die Straße.Doch seit dem Aufkommen von xml und json spricht niemand mehr über das Analysieren von Kontexten , so wie niemand mehr Parser zu schreiben scheint. Einige Probleme hören auf, Mainstream zu sein, gehen in eine Nische und seltsame Nischenkonzepte wie diese bleiben bestehen.
quelle