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

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

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

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

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

मान लें कि आपके पास Point है वर्ग, इस बिंदु को दो निर्देशांक की आवश्यकता है, x और y

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

इसे पसंद करें :

Point.new(10, 20)

new विधि यह है कि आप रूबी में Point . जैसी कक्षा से नई वस्तुएं कैसे बनाते हैं , या कोई अन्य वर्ग जिस तक आपकी पहुंच है।

नए और इनिशियलाइज़ के बीच संबंध

इन दो तर्कों पर ध्यान दें, 10 और 20 ?

यहां हम initialize पर वापस आते हैं विधि।

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

ArgumentError: wrong number of arguments (2 for 0)

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

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

class Point
  def initialize(x, y)
  end
end

अब आप Point create बना सकते हैं दो तर्कों वाली वस्तुएं।

तो initialize . का पूरा बिंदु आपको तर्कों के साथ ऑब्जेक्ट बनाने की अनुमति देता है।

तर्क सहेजना

तर्क initialize . में पारित हो गए स्वचालित रूप से कहीं भी सहेजे नहीं जाते हैं।

आपको इसे आवृत्ति चर का उपयोग करके करना होगा:

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

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

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

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

आप initialize . के अंदर अन्य विधियों को कॉल कर सकते हैं , लेकिन आप उपयोग की जाने वाली वस्तु को तैयार करने के लिए जो आवश्यक है, उससे अधिक यहां कोई वास्तविक कार्य नहीं करना चाहते हैं।

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

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

आप केवल API कुंजी को एक आवृत्ति चर में सहेजना चाहते हैं।

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

हैश और अन्य अंतर्निर्मित ऑब्जेक्ट प्रारंभ करना

हैश जैसी अंतर्निर्मित वस्तुओं में new calling कॉल करने के अलावा उन्हें प्रारंभ करने और बनाने के विशेष तरीके हैं ।

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

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 स्ट्रिंग्स की एक सरणी बनाता है।

सारांश

आपने रूबी इनिशियलाइज़ विधि के बारे में सीखा है, यह new . से कैसे संबंधित है विधि, और रूबी में वस्तु निर्माण की मूल बातें।

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

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


  1. रूबी का उपयोग कैसे करें कोई भी, सभी, कोई नहीं और एक

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

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

    आइए बात करते हैं grep . के बारे में विधि। यह विधि आपके लिए क्या कर सकती है? आप ग्रेप का उपयोग एरेज़ और रेंज जैसी असंख्य वस्तुओं को फ़िल्टर करने के लिए कर सकते हैं। “लेकिन चुनें पहले से ही ऐसा करता है!” हां, लेकिन grep एक अलग तरीके से काम करता है और यह अलग परिणाम देता है। आइए कुछ उदाहरण देखें।

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

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