Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

रूबी गेट्स और रूबी चॉम्प विधियों का उपयोग कैसे करें

आप एक रूबी प्रोग्राम लिख रहे हैं और आप उपयोगकर्ता से एक प्रश्न पूछना चाहते हैं…

आप यह कैसे कर सकते हैं?

ठीक है, आप रूबी का उपयोग कर सकते हैं gets उपयोगकर्ता इनपुट पढ़ने की विधि।

आप कॉल कर सकते हैं gets

फिर आपका प्रोग्राम आपके कीबोर्ड से कुछ टाइप करने और एंटर कुंजी दबाने की प्रतीक्षा करना शुरू कर देता है।

परिणाम?

आपको एक स्ट्रिंग वापस मिलती है।

इस स्ट्रिंग में वह सामग्री है जो आपने (या उपयोगकर्ता) टाइप की है, इसलिए यदि आप इस स्ट्रिंग को एक चर के लिए निर्दिष्ट करते हैं तो आप इसका उपयोग करने में सक्षम होंगे।

एक सामान्य उदाहरण अभिवादन कार्यक्रम है।

ऐसा दिखता है :

name = gets.chomp

puts "Hello #{name}, nice to meet you!"
<ब्लॉकक्वॉट>

#{name} चीज़ को स्ट्रिंग इंटरपोलेशन कहा जाता है

इसे आज़माएं और खुद देखें कि यह कैसे काम करता है।

  • सबसे पहले, इस कोड को "ग्रीटिंग.आरबी" फ़ाइल में सहेजें
  • फिर, इसे "रूबी ग्रीटिंग.आरबी" (टर्मिनल प्रोग्राम से) के साथ प्रयोग करें

अपना नाम दर्ज करें और आपका कार्यक्रम आपका स्वागत करेगा!

बहुत बढ़िया।

अब :

यह क्या है chomp व्यापार के बारे में?

यह एक रूबी विधि है जो gets के परिणामों को बदल देती है बहुत विशिष्ट तरीके से।

इसे हटाने का प्रयास करें।

डॉट सहित (. ) इससे पहले, तो यह name = gets . हो जाता है , के बजाय name = gets.chomp

यदि आप अपना कोड सहेजते हैं और उसे फिर से चलाते हैं…

आप देखेंगे कि पूरा अभिवादन एक पंक्ति में होने के बजाय अब आपका अभिवादन दो पंक्तियों में टूट गया है।

इसमें क्या हो रहा है?

आइए पता लगाने के लिए विवरण में खुदाई करें!

नई पंक्तियों और विशेष वर्णों को समझना

रूबी आपके द्वारा प्रोग्राम में टाइप की जाने वाली हर चीज को पढ़ती है जबकि get विधि सक्रिय है।

हमारे अभिवादन कार्यक्रम . के लिए , इसमें आपका नाम शामिल है।

और एक विशेष "नई पंक्ति" वर्ण जो अभिवादन संदेश को दो पंक्तियों में विभाजित करता है!

नए पंक्ति वर्ण से मिलें :

\n

इस प्रकार के विशेष वर्ण सामान्य रूप से अदृश्य होते हैं और केवल नई पंक्तियों, रिक्त स्थान, रंगों आदि के रूप में दिखाई देते हैं।

यदि आप उन्हें देखना चाहते हैं तो आपको $10,000 की कीमत वाली एक जादुई टॉर्च की आवश्यकता होगी।

मजाक कर रहे हो!

आपको बस p . की आवश्यकता है विधि या inspect विधि।

उदाहरण उपयोग :

p name
# "Jesus\n"

यह रहा!

हमारा "नई लाइन" वर्ण (\n )।

यह हमें हमारे मूल प्रश्न पर वापस लाता है…

chomp क्या है सब के बारे में?

chomp . का उद्देश्य स्ट्रिंग्स के अंत में न्यूलाइन कैरेक्टर को हटाना है।

जैसा कि आपने देखा, यह बहुत मददगार है!

एक और उदाहरण

यह न्यूलाइन कैरेक्टर, या कुछ अन्य विशेष कैरेक्टर होने से, जब आप इसे प्रिंट करते हैं तो स्ट्रिंग कैसी दिखती है, उससे अधिक चीजों को प्रभावित करती है।

यह आपके if कथनों पर भी प्रभाव डाल सकता है!

उदाहरण :

name = gets

if name == "David"
  puts "Hello David, we were expecting you!"
end

इस कोड में, यदि आप chomp . का उपयोग नहीं करते हैं gets . के साथ , न्यूलाइन कैरेक्टर (\n . के कारण दोनों तार एक जैसे नहीं होंगे ), इसलिए यह false . का मूल्यांकन करता है ।

बीटीडब्ल्यू…

यह उन स्ट्रिंग्स पर भी लागू होता है जो आपको gets . से बाहर मिलती हैं , जैसे डेटा आपको डेटाबेस, फ़ाइल या किसी अन्य स्रोत को पढ़ने से मिलता है।

इन खास किरदारों पर नज़र रखें!

चॉम्प बनाम चॉप बनाम स्ट्रिप

उपयोगकर्ता इनपुट को साफ करने के लिए अन्य दो तरीके जो आपको उपयोगी लग सकते हैं, वे हैं chop &strip

strip . के साथ आप सफेद स्थान हटा सकते हैं।

उदाहरण :

"    John Smith    ".strip

chop के साथ आप हमेशा अंतिम वर्ण हटा देंगे।

पहला वर्ण हटाना

एक और चीज जिसकी आपको आवश्यकता हो सकती है, वह है शुरुआत से ही पात्रों को हटाना।

आप इसे इस तरह कर सकते हैं :

str = "Mr. John"

str[0..3] = ""

str
# "John"

यह पहले चार वर्णों को हटा देता है।

टू गेट्स मेथड्स? प्लॉट मोटा होता है!

एक विशेष मामला है…

जहां आपको $stdin.gets . का उपयोग करना होगा इसके बजाय सिर्फ gets

अगर आपको इस तरह की कोई त्रुटि मिलती है :

`gets': No such file or directory @ rb_sysopen
. नहीं है

क्यों?

क्योंकि gets . के दो संस्करण हैं विधि।

  • डिफ़ॉल्ट संस्करण फ़ाइल नाम पढ़ने का प्रयास करता है
  • वैकल्पिक संस्करण ($stdin.gets ) हमेशा उपयोगकर्ता इनपुट से पढ़ता है

अब आप जानते हैं, यदि आपको gets . का उपयोग करते समय ऐसी कोई त्रुटि दिखाई देती है , इसे $stdin.gets . में बदलने का प्रयास करें ।

सारांश

आपने प्राप्त और चॉम्प विधियों के बारे में सीखा है, वे क्या करते हैं, वे कैसे काम करते हैं, और वे क्यों उपयोगी हैं!

इस रूबी ट्यूटोरियल के साथ सीखते रहें।

पढ़ने के लिए धन्यवाद!


  1. रूबी मानचित्र विधि का उपयोग कैसे करें (उदाहरण के साथ)

    मैप एक रूबी विधि है जिसका उपयोग आप ऐरे, हैश और रेंज के साथ कर सकते हैं। मानचित्र का मुख्य उपयोग डेटा को ट्रांसफ़ॉर्म करना है। उदाहरण के लिए : स्ट्रिंग्स की एक सरणी को देखते हुए, आप प्रत्येक स्ट्रिंग पर जा सकते हैं और प्रत्येक वर्ण को अपरकेस बना सकते हैं। या यदि आपके पास User . की सूची है ऑब्जेक्

  1. रूबी में स्ट्रक्चर और ओपनस्ट्रक्चर का उपयोग कैसे करें?

    रूबी में स्ट्रक्चर क्या है? एक संरचना एक अंतर्निहित रूबी वर्ग है, इसका उपयोग नए वर्ग बनाने के लिए किया जाता है जो मूल्य वस्तुओं का उत्पादन करते हैं। संबंधित विशेषताओं को एक साथ संग्रहीत करने के लिए एक मूल्य वस्तु का उपयोग किया जाता है। यहां एक उदाहरण दिया गया है : एक Point दो निर्देशांकों के साथ

  1. रूबी के ऐरे क्लास का उपयोग कैसे करें (उदाहरण + उपयोगी तरीके)

    एक सरणी क्या है? एक सरणी एक अंतर्निहित रूबी वर्ग है, जिसमें शून्य या अधिक वस्तुओं की सूची होती है , और इसमें वे विधियां शामिल हैं जो इन सभी वस्तुओं को आसानी से जोड़ने, एक्सेस करने और लूप करने में आपकी सहायता करती हैं। यह मददगार है, क्योंकि यदि सरणियाँ मौजूद नहीं होतीं तो आपको कई चरों का उपयोग करना