आरंभिक विधि रूबी में ऑब्जेक्ट-निर्माण प्रक्रिया का हिस्सा है और यह आपको किसी ऑब्जेक्ट के लिए प्रारंभिक मान सेट करने की अनुमति देती है।
अन्य प्रोग्रामिंग भाषाओं में वे इसे "कन्स्ट्रक्टर" कहते हैं।
उदाहरण के लिए :
मान लें कि आपके पास 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 . से कैसे संबंधित है विधि, और रूबी में वस्तु निर्माण की मूल बातें।
रूबी में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का यह परिचय पढ़कर सीखते रहें।
पढ़ने के लिए धन्यवाद!