बैकस्लैश "\" एस्केप कैरेक्टर वास्तव में बचता है क्या?


13

बैकस्लैश वास्तव में क्या बचता है?

इसका इस्तेमाल पलायन चरित्र के रूप में किया जाता है। लेकिन मुझे हमेशा आश्चर्य होता है कि क्या बच रहा है, या क्या हो रहा है।

मुझे पता है कि "\ n" एक नई लाइन नामित करता है। लेकिन भागने में क्या आता है? ऐसा क्यों कहा जाता है?


15
यह मेरे प्रकोप से बच रहा है जब यह मेरे तार काटता है।
जोएल एथरटन

जवाबों:


37

बैकस्लैश को संकलक / दुभाषिया को बताने के लिए एक मार्कर चरित्र के रूप में उपयोग किया जाता है कि अगले चरित्र का कुछ विशेष अर्थ है। क्या है कि अगले चरित्र का मतलब कार्यान्वयन तक है। उदाहरण के लिए C- शैली की भाषाएँ newline और \ t का अर्थ मीनिंग टैब करने के लिए \ n का उपयोग करती हैं।

"एस्केप" शब्द का उपयोग वास्तव में पाठ को पार्स करने से और अस्थायी रूप से बचने के लिए होता है, जिसमें बाद के चरित्र को अलग तरह से व्यवहार किया जाता है।


8
चरित्र के आधार पर, एक बैकस्लैश कंपाइलर / दुभाषिया को बता सकता है कि निम्नलिखित वर्ण का कोई विशेष अर्थ नहीं है। उदाहरण के लिए, जब उद्धरण चिह्नों से बच रहे हों।
रयान किनाल

12
या खुद से बचकर।
मालफिस्ट

12

:))

यह एक एस्केप सीक्वेंस और Esc (एस्केप) कुंजी से संबंधित शब्द है ।

चरित्र ही किसी अन्य चरित्र से "भाग नहीं" रहा है। बच चरित्र के बाद एक चरित्र कह सकते हैं (कहते हैं, अपने उदाहरण से \ n ) कुछ अनुप्रयोग में एक साधारण n के रूप में इस्तेमाल होने के भाग्य से बच जाता है , और इसके बजाय एक नई पंक्ति के रूप में उपयोग किया जाता है।


3

आउट-ऑफ-बैंड संचार की अवधारणा के साथ एस्केप सीक्वेंस बहुत आम हैं:

इसके अलावा कभी-कभी यह वर्णन करने के लिए भी इस्तेमाल किया जाता है कि कौन से संचार लोग शिफ्ट वर्ण कहते हैं, जैसे कि ईएससी जो कई टर्मिनलों के लिए नियंत्रण अनुक्रम का नेतृत्व करता है, या पुराने 5-बिट बॉडॉट कोड में स्तर शिफ्ट संकेतक।

मान लें कि आप एक सीरियल पोर्ट पर एक फ़ाइल स्थानांतरण कर रहे हैं और आप दूसरे छोर पर कंप्यूटर के साथ बातचीत करते हैं: "ठीक है, यहाँ फ़ाइल आती है"। चूंकि सामान्य स्थिति में सभी वर्ण मान्य फ़ाइल वर्ण हो सकते हैं (यदि यह एक ASCII फ़ाइल है) तो आपको कुछ समस्याएं हैं:

  • आप कैसे जानते हैं कि धारा का अंत कहां है?
  • कुछ योजनाएं समाप्त करने के लिए ASCII NUL (शून्य) का उपयोग करती हैं, जैसे कि कुछ भाषाओं में तार, लेकिन तब आपके पास फ़ाइल में वह चरित्र नहीं हो सकता है। यह कुछ सेटिंग्स में स्वीकार्य नहीं है, जैसे फ़ाइल स्थानांतरण। शून्य एक वैध चरित्र हो सकता है।
  • आप अपेक्षित फ़ाइल की लंबाई पहले भेज सकते हैं, लेकिन क्या होगा अगर आपको गर्भपात करने की आवश्यकता है?

कंप्यूटिंग के इतिहास में विभिन्न लोगों ने इस समस्या के आसपास पाने के लिए बहुत सारे अलग-अलग तरीकों को लागू किया है।

प्रोग्रामिंग भाषा में शाब्दिक तार के मामले में, यह एक ऐसी ही समस्या है। पहला उद्धरण कहता है "यहाँ स्ट्रिंग आती है - तब तक पढ़ना शुरू करें जब तक कि आप एक और उद्धरण प्राप्त न कर लें"। बेशक, तब आपके पास एक उद्धरण चरित्र भेजने की समस्या है, इसलिए उन्होंने स्लैश एस्केप अनुक्रम का आविष्कार किया। यदि आप एक स्लैश और फिर एक उद्धरण देखते हैं, तो यह एक शाब्दिक उद्धरण है, न कि स्ट्रिंग का अंत। दुर्भाग्य से आपने एक मकड़ी को केवल एक मक्खी खाने के लिए निगल लिया, क्योंकि अब आप शाब्दिक स्लैश-उद्धरण संयोजन नहीं भेज सकते। तो, आप एक और स्लैश के साथ एक स्लैश से बच सकते हैं। तो स्लैश-स्लैश का मतलब है स्लैश, स्लैश-कोट का मतलब है बोली। इससे उन्हें अन्य अनुचित या हार्ड-टू-प्रिंट वर्ण जैसे कि गाड़ी के रिटर्न, लाइन फीड, टैब आदि के लिए स्लैश का उपयोग करने की अनुमति मिली।


3

यह पार्सिंग के संदर्भ से एक पलायन है , यह मांग है (एक खलनायक) के रूप में एक के बजाय के रूप में nव्याख्या की जानी चाहिए ।nnewline

इसके बारे में सबसे दिलचस्प अंतर यह है कि एक भागने ने पार्सिंग संदर्भ को स्विच नहीं किया है जिस तरह से एक उद्धरण चरित्र "(या कई अन्य प्रतीक) करेंगे, दूसरे "संदर्भ (या किसी अन्य प्रतीक) को पूर्व संदर्भ में वापस लाने की आवश्यकता होगी । वे बस थोड़ा सा मोड़ लेते हैं लेकिन ASAP सड़क पर वापस आ जाते हैं।

अभी तक कोई भी व्यक्ति प्रसंगों के बारे में बात नहीं करता है , जितना कि कोई भी व्यक्ति अब पार्सर्स लिखने के लिए नहीं लगता है, क्योंकि xml और json के आगमन के बाद से। कुछ समस्याएँ मुख्यधारा बननी बंद हो जाती हैं, एक आला और अजीब आला अवधारणा में चली जाती हैं जैसे कि आसपास ही रहती हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.