रूबी प्रोग्राम को समय से पहले कैसे रोकें?
आमतौर पर एक प्रोग्राम तब तक चलेगा जब तक यह पूरा नहीं हो जाता सभी निर्देशों को प्रोसेस करना।
या जब तक यह एक अपवाद उठाता है जो संभाला नहीं जाता।
लेकिन अगर आप एक रूबी प्रोग्राम लिख रहे हैं जिसे हर समय चलने की आवश्यकता नहीं है, तो आप किसी कारण से अपने प्रोग्राम को जल्दी रोकना चाह सकते हैं।
आप इसे exit मेथड से कर सकते हैं।
यह exit मेथड कैसे काम करता है?
आइए इसके बारे में बात करते हैं!
प्रोग्राम रोकने के विभिन्न तरीके
जब आप exit कॉल करते हैं तो आपका प्रोग्राम तुरंत नहीं रुकेगा।
यह होता है:
रूबी एक SystemExit अपवाद उठाती है जो आपके प्रोग्राम के अन्य हिस्सों को क्लीन अप करने का मौका देती है।
आप यह कोड चलाकर एक प्रदर्शन देख सकते हैं:
begin exit rescue SystemExit p 123 end
यह 123 प्रिंट करता है और फिर बाहर निकलता है।
यदि आप चाहते हैं कि आपका प्रोग्राम इस क्लीन-अप प्रक्रिया को छोड़ दे, तो आप exit! का उपयोग कर सकते हैं।
यहाँ एक उदाहरण है:
begin exit! rescue SystemExit p 123 end
ध्यान दें कि यह प्रोग्राम समाप्त होने से पहले 123 प्रिंट नहीं करेगा।
आप एक और मेथड का भी उपयोग कर सकते हैं।
इसे abort कहा जाता है।
इस मेथड के साथ आप एक एरर मैसेज प्रदान कर सकते हैं।
इस तरह:
abort "No Bacon Left"
जो इसके समान है:
warn "No Bacon Left!" exit 1
warn मेथड एक एरर मैसेज को स्टैंडर्ड एरर पर प्रिंट करता है।
लेकिन exit के लिए यह 1 आर्गुमेंट क्या है?
वह चर्चा का अगला विषय है!
स्टेटस कोड्स को समझना
जब एक प्रोग्राम समाप्त होता है, न केवल एक रूबी प्रोग्राम बल्कि कोई भी प्रोग्राम, यह एक स्टेटस कोड पीछे छोड़ता है।
यहाँ आपको क्या जानने की आवश्यकता है:
0का स्टेटस कोड का मतलब है प्रोग्राम सामान्य रूप से समाप्त हुआ- अन्य स्टेटस कोड (
0नहीं) एरर कंडीशन को सिग्नल करने के लिए उपयोग किए जाते हैं - नॉन-ज़ीरो स्टेटस कोड लौटाने का प्रभाव आपके वर्तमान वातावरण पर निर्भर करता है
यह मददगार है क्योंकि ऑपरेटिंग सिस्टम, या नियमित प्रोग्राम, इस स्टेटस कोड का उपयोग मॉनिटरिंग, लॉगिंग और यहां तक कि असफल प्रोग्राम को स्वचालित रूप से रीस्टार्ट करने के लिए कर सकते हैं।
लिनक्स में आप अंतिम प्रोग्राम के एग्जिट स्टेटस कोड का पता लगाने के लिए echo $? का उपयोग कर सकते हैं।
आइए रूबी पर वापस चलते हैं:
जब आप exit कॉल करते हैं तो स्टेटस कोड डिफ़ॉल्ट रूप से 0 होता है।
आप एक आर्गुमेंट के रूप में दूसरा स्टेटस कोड पास कर सकते हैं।
यही कारण है कि जब आप abort कॉल करते हैं तो स्टेटस कोड 1 पर सेट होता है, abort मेथड का उपयोग एरर को सिग्नल करने के लिए किया जाता है।
लूप रोकना
यदि आप पूरे प्रोग्राम को नहीं बल्कि केवल एक लूप को रोकना चाहते हैं, तो आपको कुछ अलग उपयोग करना होगा।
आप break कीवर्ड का उपयोग कर सकते हैं:
while 1 == 1 break end
यह ब्लॉक्स के अंदर भी काम करता है, न कि केवल while लूप्स में।
मेथड से बाहर निकलना
रूबी मेथड्स अपने कोड की अंतिम लाइन पर स्वाभाविक रूप से समाप्त होते हैं।
यदि आप पहले बाहर निकलना चाहते हैं...
return कीवर्ड का उपयोग करें।
उदाहरण:
def apples return "I had my two apples today" "bacon" end
यह कोड कभी "bacon" तक नहीं पहुंचता क्योंकि जल्दी return के कारण।
बोनस: अनंत लूप रोकना
ऐसा होता है।
कभी-कभी आप काउंटर बढ़ाना भूल जाते हैं और एक अनंत लूप उत्पन्न कर देते हैं।
अपने प्रोग्राम को रोकने के लिए आप एक की कॉम्बिनेशन दबा सकते हैं:
CTRL+C
सारांश
आपने रूबी में exit मेथड, abort मेथड, एग्जिट स्टेटस कोड्स, और लूप से कैसे बाहर निकलें के बारे में सीखा।
इस लेख को शेयर करना न भूलें ताकि अधिक लोग इसका आनंद ले सकें।
पढ़ने के लिए धन्यवाद! 🙂