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

रूबी की Initialize मेथड में महारत हासिल करें: चरण-दर-चरण गाइड

initialize मेथड रूबी में ऑब्जेक्ट-क्रिएशन प्रक्रिया का हिस्सा है और यह आपको ऑब्जेक्ट के लिए प्रारंभिक मान सेट करने की अनुमति देता है।

अन्य प्रोग्रामिंग भाषाओं में इसे "कंस्ट्रक्टर" कहा जाता है।

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

मान लें कि आपके पास एक Point क्लास है, इस पॉइंट को दो कोऑर्डिनेट्स, x और y की आवश्यकता है।

आप इन मानों को ऑब्जेक्ट में कैसे पास करने जा रहे हैं?

इस तरह:

Point.new(10, 20)

new मेथड रूबी में Point जैसी क्लास से या किसी अन्य क्लास से जिसे आप एक्सेस कर सकते हैं, नए ऑब्जेक्ट्स बनाने का तरीका है।

New और Initialize के बीच संबंध

इन दो आर्गुमेंट्स, 10 और 20 पर ध्यान दें?

यहाँ हम initialize मेथड पर वापस आते हैं।

यदि आप new में आर्गुमेंट्स पास करने की कोशिश करते हैं और यदि आप initialize परिभाषित नहीं करते हैं तो आपको एरर मिलेगी:

ArgumentError: wrong number of arguments (2 for 0)

क्योंकि जब आप new कॉल करते हैं, तो रूबी initialize कॉल करता है!

आपको इसकी आवश्यकता है:

class Point
  def initialize(x, y)
  end
end

अब आप दो आर्गुमेंट्स के साथ Point ऑब्जेक्ट्स बना सकते हैं।

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

आर्गुमेंट्स को सेव करना

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

आपको इंस्टेंस वेरिएबल्स का उपयोग करके ऐसा करना होगा:

class Point
  def initialize(x, y)
    @x = x
    @y = y
  end
end

यह x और y के मानों को इंस्टेंस वेरिएबल्स (@x और @y) में असाइन करेगा ताकि आप उन्हें बाद में एक्सेस कर सकें।

initialize के बारे में कुछ ध्यान देने योग्य बातें:

  • आप वैकल्पिक और डिफ़ॉल्ट आर्गुमेंट्स परिभाषित कर सकते हैं
  • इस मेथड के अंदर return का उपयोग करना कोई मतलब नहीं रखता क्योंकि यह विशेष है और यह हमेशा एक नया ऑब्जेक्ट लौटाएगा
  • initialize परिभाषित करना आवश्यक नहीं है यदि आपकी क्लास को आर्गुमेंट्स की आवश्यकता नहीं है

आप initialize के अंदर अन्य मेथड्स कॉल कर सकते हैं, लेकिन आप यहां उस काम से आगे कोई वास्तविक काम नहीं करना चाहते जो ऑब्जेक्ट को उपयोग के लिए तैयार करने के लिए आवश्यक है।

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

यदि आपकी क्लास Github API के साथ काम करने के बारे में है, तो आप पहले से API के सभी संभावित अनुरोधों को प्री-लोड नहीं करना चाहेंगे।

आप बस API कुंजी को इंस्टेंस वेरिएबल में सेव करना चाहेंगे।

या जो भी डेटा आपकी क्लास को चाहिए।

हैश और अन्य बिल्ट-इन ऑब्जेक्ट्स को इनिशियलाइज़ करना

हैश जैसे बिल्ट-इन ऑब्जेक्ट्स के पास new कॉल करने के अलावा उन्हें इनिशियलाइज़ और बनाने के विशेष तरीके हैं।

हैश बनाने के तरीके:

h = Hash.new
h = Hash['a', 1]
h = {}

स्ट्रिंग बनाने के तरीके:

s = String.new
s = ""
s = %Q()

ऐरे बनाने के तरीके:

a = Array.new(5)
a = %w(a b c)
a = []

%w स्ट्रिंग्स की एक ऐरे बनाता है।

सारांश

आपने रूबी initialize मेथड के बारे में सीखा, यह new मेथड से कैसे संबंधित है, और रूबी में ऑब्जेक्ट क्रिएशन की मूल बातें।

रूबी में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के इस परिचय को पढ़कर सीखते रहें।

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

  1. Ruby Enumerable मेथड्स में महारत: Any, All, None और One Ruby Enumerable मेथड्स में महारत: Any, All, None और One

    आज आप 4 Enumerable मेथड्स के बारे में सीखेंगे जो आपको तत्वों की एक सरणी, हैश, या Enumerable मॉड्यूल को शामिल करने वाले किसी भी अन्य ऑब्जेक्ट्स के खिलाफ एक सशर्त कथन की जांच करने में मदद करेंगे। ये 4 मेथड्स या तो true या false लौटाते हैं। विषय सूची1 Ruby All मेथड2 All और खाली सरणियाँ3 Ruby None मेथड

  1. Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड

    आइए grep मेथड के बारे में बात करते हैं। यह मेथड आपके लिए क्या कर सकता है? आप enumerable ऑब्जेक्ट्स को फ़िल्टर करने के लिए Grep का उपयोग कर सकते हैं, जैसे Arrays और Ranges। "लेकिन select पहले से ही ऐसा करता है!" हाँ, लेकिन grep अलग तरीके से काम करता है और अलग परिणाम उत्पन्न करता है। आइए कुछ

  1. Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड

    Map एक Ruby मेथड है जिसका उपयोग आप Arrays, Hashes और Ranges के साथ कर सकते हैं। map का मुख्य उपयोग डेटा को ट्रांसफॉर्म करना है। उदाहरण के लिए: स्ट्रिंग्स की एक सरणी दिए जाने पर, आप हर स्ट्रिंग पर जा सकते हैं और हर कैरेक्टर को UPPERCASE बना सकते हैं। या यदि आपके पास User ऑब्जेक्ट्स की एक सूची है... आ