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

Ruby मेथड्स समझाए गए: आसानी से कस्टम फंक्शन्स बनाएं

मेथड्स को कैसे परिभाषित करें

Ruby प्रोग्रामिंग भाषा में कई शक्तिशाली बिल्ट-इन मेथड्स हैं जिनका आप उपयोग कर सकते हैं, लेकिन आप अपने खुद के भी बना सकते हैं।

कैसे?

आप def कीवर्ड का उपयोग करके अपनी खुद की इंस्टेंस मेथड को परिभाषित कर सकते हैं।

यहाँ सिंटैक्स है:

def gimme_bacon
  puts "Bacon plz."
end 

यहाँ क्या हो रहा है?

  1. def Ruby के सिंटैक्स का हिस्सा है, यह कहता है कि हम एक मेथड defइन करना चाहते हैं
  2. gimme_bacon मेथड का नाम है
  3. puts "Bacon plz." मेथड का बॉडी है
  4. end मेथड परिभाषा के अंत को चिह्नित करता है

एक मेथड को परिभाषित करना केवल Ruby को बताता है कि आप इसे बनाना चाहते हैं।

यदि आप इसका उपयोग करना चाहते हैं तो आपको मेथड को कॉल करने की आवश्यकता है।

Ruby में मेथड्स को कैसे कॉल करें

Ruby में, जब हम एक मेथड का उपयोग करते हैं, तो हम कहते हैं कि हम इसे कॉल कर रहे हैं।

आप अक्सर "मेथड कॉल" सुनेंगे, या यदि आप किसी ऐसे व्यक्ति के साथ काम कर रहे हैं जो ऑब्जेक्ट-ओरिएंटेड शुद्धतावादी है, तो आप सुन सकते हैं कि "आप एक संदेश भेज रहे हैं"।

किसी भी तरह...

आइए एक मेथड का उपयोग करने का एक उदाहरण देखें।

यहाँ आप जाएं:

gimme_bacon 

यह प्रिंट करता है:

"Bacon plz." 

आप ऑब्जेक्ट्स पर मेथड्स कॉल कर सकते हैं।

उदाहरण के लिए:

n = [1,2,3]
n.size # 3 

यह n.size ऑब्जेक्ट n पर मेथड size को कॉल कर रहा है, जो एक Array होता है।

परिणाम?

हमें एरे का आकार मिलता है।

कौन से मेथड्स उपलब्ध हैं?

यह उस ऑब्जेक्ट के क्लास पर निर्भर करता है जिस पर आप मेथड कॉल कर रहे हैं।

एक एरे में एक हैश से अलग मेथड्स होंगे।

आप Ruby डॉक्यूमेंटेशन चेक कर सकते हैं किसी दिए गए क्लास के लिए मेथड्स की सूची खोजने के लिए।

मेथड्स से वैल्यूज वापस करना

Ruby में एक प्रमुख अवधारणा है कि सभी मेथड्स एक मान लौटाते हैं।

मैं समझाता हूँ!

एक मेथड को कॉल करने के परिणामस्वरूप, आपको कुछ वापस मिलता है।

यह "कुछ" जो आपको मिलता है वह आपकी मेथड परिभाषा में अंतिम एक्सप्रेशन से आता है।

मेरा मतलब यहाँ है:

def number_one
  1
end
number_one # 1 

एक और उदाहरण:

def add(x,y)
  x + y
end
add(5, 6) # 11 

हम इसे "इम्प्लिसिट रिटर्न" कहते हैं, सिर्फ "अंतिम चीज़ को ऑटोमैटिकली लौटाएं" के लिए एक फैंसी नाम।

इसके अलावा:

आप Ruby को return कीवर्ड के साथ कुछ return करने के लिए कह सकते हैं।

def two
  return 2
end
# 2 

ध्यान दें कि जब आप return का उपयोग करते हैं तो आपका मेथड चलना बंद कर देता है।

आप इसका उपयोग अपने कोड में जल्दी रिटर्न के लिए, या लूप से बाहर निकलने के लिए करते हैं।

मेरे मेथड नाम में क्वेश्चन मार्क क्यों है?

आपको कुछ अजीब Ruby मेथड्स मिल सकते हैं।

ऐसे नामों के साथ:

  • empty?
  • sort!
  • title=

ये सभी वैध मेथड नाम हैं।

क्वेश्चन मार्क, एक्सक्लेमेशन मार्क, या इक्वल्स साइन का क्या मतलब है?

वे Ruby समुदाय में कन्वेंशन हैं।

व्याख्या:

  • एक क्वेश्चन मार्क मेथड, जिसे प्रेडिकेट मेथड के रूप में भी जाना जाता है, को true या false लौटाना चाहिए
  • एक एक्सक्लेमेशन मार्क मेथड कहता है कि यह नॉन-एक्सक्लेमेशन मार्क वर्जन से कुछ अलग करेगा। आमतौर पर, यह ऑब्जेक्ट को किसी तरह से बदलने से जुड़ा होता है, जैसे एलिमेंट्स जोड़ना/हटाना। "बैंग मेथड्स" के रूप में भी जाना जाता है।
  • इक्वल्स साइन मेथड का मतलब असाइनमेंट है। इसका उपयोग एक इंस्टेंस वेरिएबल को मान असाइन करने के लिए किया जाता है

इनमें से कोई भी कन्वेंशन भाषा द्वारा लागू नहीं किए जाते।

लेकिन...

यदि आप उनका पालन करते हैं, तो आप अधिक Ruby-जैसा कोड लिखने में सक्षम होंगे!

सारांश

आपने Ruby मेथड्स की शक्ति के बारे में सीखा, उन्हें कैसे परिभाषित करें, उनका उपयोग कैसे करें और उचित कन्वेंशन का पालन कैसे करें।

अब इसे अभ्यास में लाने की आपकी बारी है 🙂

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


  1. अपने रूबी तरीकों की जासूसी कैसे करें अपने रूबी तरीकों की जासूसी कैसे करें

    रूबी में एक अंतर्निहित अनुरेखण प्रणाली है जिसे आप TracePoint . का उपयोग करके एक्सेस कर सकते हैं कक्षा। कुछ चीज़ें जिन्हें आप ट्रेस कर सकते हैं, वे हैं मेथड कॉल, नए थ्रेड और अपवाद। आप इसका उपयोग क्यों करना चाहेंगे? ठीक है, यदि आप किसी निश्चित विधि के निष्पादन का पता लगाना चाहते हैं तो यह उपयोगी हो

  1. रूबी डीबगिंग में महारत: सामान्य त्रुटियों के लिए त्वरित सुधार रूबी डीबगिंग में महारत: सामान्य त्रुटियों के लिए त्वरित सुधार

    आपका प्रोग्राम पहली बार में कितनी बार वही करता है जो आप चाहते हैं? कई बार हमारे प्रोग्राम्स हमारी अपेक्षा के अनुसार काम नहीं करते, इसलिए हमें यह पता लगाने में मदद के लिए रूबी डीबगिंग की कला का उपयोग करना पड़ता है कि क्यों। आप निम्नलिखित त्रुटि संदेश से परिचित हो सकते हैं: undefined method some_metho

  1. अपना खुद का सीज़र सिफर एन्कोडर बनाएं: एक चरण-दर-चरण मार्गदर्शिका अपना खुद का सीज़र सिफर एन्कोडर बनाएं: एक चरण-दर-चरण मार्गदर्शिका

    क्या आपने कभी सीज़र सिफर के बारे में सुना है? जूलियस सीज़र ने इस तकनीक का उपयोग अपने दुश्मनों से गुप्त संदेश छिपाने के लिए किया था! सीज़र सिफर सबसे प्राचीन एन्क्रिप्शन तकनीकों में से एक है। इस प्रणाली के पीछे मुख्य विचार अक्षरों को घुमाना वर्णमाला पर x संख्या में स्थितियों द्वारा है। उदाहरण के लिए,