Co naprawdę unika odwrotnego ukośnika?
Jest używany jako postać uciekająca. Ale zawsze zastanawiam się, przed czym ucieka lub przed czym ucieka.
Wiem, że „\ n” oznacza nową linię. Ale co się dzieje z ucieczką? Dlaczego to się tak nazywa?
Co naprawdę unika odwrotnego ukośnika?
Jest używany jako postać uciekająca. Ale zawsze zastanawiam się, przed czym ucieka lub przed czym ucieka.
Wiem, że „\ n” oznacza nową linię. Ale co się dzieje z ucieczką? Dlaczego to się tak nazywa?
Odpowiedzi:
Ukośnik odwrotny jest używany jako znak znacznika, aby poinformować kompilator / tłumacz, że następny znak ma jakieś specjalne znaczenie. To, co oznacza ta następna postać, zależy od implementacji. Na przykład języki w stylu C używają \ n, aby oznaczać znak nowej linii, a \ t, aby oznaczać tabulatorem.
Użycie słowa „ucieczka” naprawdę oznacza tymczasowe wyjście z parsowania tekstu i przejście do innego trybu, w którym kolejny znak jest traktowany inaczej.
:))
Jest to termin związany z sekwencją Escape i klawiszem Esc (Escape).
Sama postać nie „ucieka” od żadnej innej postaci. Można powiedzieć, że znak następujący po znaku zmiany znaczenia (powiedzmy \ n z twojego przykładu) ucieka losowi, że jest używany jako zwykły n w niektórych aplikacjach i zamiast tego jest używany jako nowy wiersz.
Sekwencje specjalne mają wiele wspólnego z koncepcją komunikacji pozapasmowej :
Czasami również używany do opisania tego, co ludzie nazywają znakami shift, na przykład ESC, który prowadzi sekwencje kontrolne dla wielu terminali, lub wskaźników przesunięcia poziomu w starych 5-bitowych kodach Baudot.
Powiedzmy, że przesyłasz plik przez port szeregowy i negocjujesz z komputerem na drugim końcu: „OK, nadchodzi plik”. Ponieważ w ogólnym przypadku wszystkie znaki mogą być poprawnymi znakami pliku (jeśli jest to plik ASCII), masz pewne problemy:
Różne osoby w całej historii komputerów wprowadziły wiele różnych metod obejścia tego problemu.
W przypadku ciągów literalnych w języku programowania jest to podobny problem. Pierwszy cytat mówi „oto ciąg znaków - zacznij czytać, aż pojawi się kolejny cytat”. Oczywiście wtedy masz problem z wysłaniem znaku cytatu, więc wymyślili sekwencję ucieczki ukośnika. Jeśli widzisz ukośnik, a następnie cytat, to jest to dosłowny cytat, a nie koniec łańcucha. Niestety właśnie połknąłeś pająka, aby zjeść muchę, ponieważ teraz nie możesz wysłać dosłownej kombinacji slash-quote. Więc możesz uciec przed cięciem innym cięciem. Więc slash-slash oznacza slash, slash-quote oznacza cytat. Dzięki temu mogli używać ukośnika w przypadku innych niedrukowalnych lub trudnych do wydrukowania znaków, takich jak znaki powrotu karetki, przesunięcia wiersza, tabulatory itp.
Jest to ucieczka od kontekstu analizowania , który wymaga (co za złoczyńca) n
interpretacji jako n
zamiast newline
.
Najciekawsze rozróżnienie polega na tym, że klawisz ucieczki nie przełącza parsowania kontekstu tak, jak "
zrobiłby to znak cytatu (lub wiele innych symboli), wymagając od innego "
(lub innego symbolu) powrotu do poprzedniego kontekstu. Po prostu odwracają uwagę, ale wracają jak najszybciej.
Jednak nikt już nie mówi o parsowaniu kontekstów , tak jak nikt nie wydaje się pisać parserów, odkąd pojawił się xml i json. Niektóre problemy przestają być głównym nurtem, przechodzą w niszę, a dziwne niszowe koncepcje pozostają.