Ruby में nil
, खाली ऑब्जेक्ट्स और रिक्त ऑब्जेक्ट्स की बारीकियों को समझना, मज़बूत और त्रुटि-मुक्त कोड लिखने के लिए बेहद ज़रूरी है। यह गाइड इन अवधारणाओं के बीच के अंतर को स्पष्ट करती है।
विषय-सूची
- Ruby में
nil
क्या है? - Ruby में खाली ऑब्जेक्ट्स क्या हैं?
- Ruby में रिक्त ऑब्जेक्ट्स क्या हैं?
- सारांश
- अक्सर पूछे जाने वाले प्रश्न
Ruby में nil
क्या है?
Ruby में, nil
किसी मान की पूर्ण अनुपस्थिति को दर्शाता है। यह एक विशेष ऑब्जेक्ट है जो दर्शाता है कि किसी चर या विधि में कोई डेटा नहीं है। यह एक शून्य मान या रिक्त स्थान के समान है। nil
अक्सर उन विधियों द्वारा लौटाया जाता है जिनमें कोई स्पष्ट रिटर्न स्टेटमेंट नहीं होता है या जब कोई चर अनइनिशियलाइज़्ड होता है।
my_variable = nil # स्पष्ट रूप से nil असाइन करना
puts my_variable # आउटपुट: nil
def my_method
# कोई स्पष्ट रिटर्न स्टेटमेंट नहीं
end
puts my_method # आउटपुट: nil
बूलियन संदर्भों में nil
को “फाल्सी” माना जाता है; यह सशर्त कथनों में false
के रूप में मूल्यांकन करता है।
if my_variable
puts "यह प्रिंट नहीं होगा"
else
puts "यह प्रिंट होगा" # आउटपुट: यह प्रिंट होगा
end
Ruby में खाली ऑब्जेक्ट्स क्या हैं?
एक खाली ऑब्जेक्ट एक ऐसा ऑब्जेक्ट है जो मौजूद है लेकिन इसमें कोई तत्व या डेटा नहीं है। “खाली” की परिभाषा प्रकार-निर्भर है:
- खाली ऐरे:
[]
- खाली हैश:
{}
- खाली स्ट्रिंग:
""
खाली ऑब्जेक्ट्स nil
से अलग हैं। nil
किसी ऑब्जेक्ट की अनुपस्थिति को दर्शाता है, जबकि एक खाली ऑब्जेक्ट मौजूद है लेकिन इसमें सामग्री का अभाव है।
empty_array = []
empty_hash = {}
empty_string = ""
puts empty_array.empty? # आउटपुट: true
puts empty_hash.empty? # आउटपुट: true
puts empty_string.empty? # आउटपुट: true
puts empty_array.nil? # आउटपुट: false
puts empty_hash.nil? # आउटपुट: false
puts empty_string.nil? # आउटपुट: false
Ruby में रिक्त ऑब्जेक्ट्स क्या हैं?
“रिक्त” कोई अंतर्निहित Ruby सुविधा नहीं है। यह एक परंपरा है, जिसे अक्सर Rails जैसे ढाँचों में उपयोग किया जाता है, किसी विशेष उद्देश्य के लिए खाली या महत्वहीन माने जाने वाले ऑब्जेक्ट्स का प्रतिनिधित्व करने के लिए। एक रिक्त ऑब्जेक्ट आमतौर पर या तो nil
या एक खाली ऑब्जेक्ट होता है। blank?
विधि (अक्सर एक कस्टम एक्सटेंशन) एक सुविधाजनक जांच प्रदान करती है:
class String
def blank?
self.nil? || self.empty?
end
end
class Array
def blank?
self.nil? || self.empty?
end
end
#उदाहरण उपयोग:
string1 = "hello"
string2 = ""
string3 = nil
puts string1.blank? # आउटपुट: false
puts string2.blank? # आउटपुट: true
puts string3.blank? # आउटपुट: true
array1 = [1,2,3]
array2 = []
array3 = nil
puts array1.blank? # आउटपुट: false
puts array2.blank? # आउटपुट: true
puts array3.blank? # आउटपुट: true
यह कस्टम blank?
विधि nil
और खाली ऑब्जेक्ट्स दोनों के लिए संक्षिप्त जांच को सक्षम बनाती है। याद रखें कि आपको अपने परिवेश या ढाँचे के आधार पर ऐसे एक्सटेंशन को परिभाषित करने की आवश्यकता हो सकती है।
सारांश
nil
: किसी मान की अनुपस्थिति का प्रतिनिधित्व करता है।- खाली ऑब्जेक्ट: एक ऑब्जेक्ट जो मौजूद है लेकिन जिसमें कोई डेटा नहीं है।
- रिक्त ऑब्जेक्ट: एक परंपरा (अक्सर
nil
या एक खाली ऑब्जेक्ट), आमतौर पर एक कस्टमblank?
विधि का उपयोग करके जाँचा जाता है।
इन अंतरों को समझना विश्वसनीय Ruby कोड लिखने के लिए महत्वपूर्ण है।
अक्सर पूछे जाने वाले प्रश्न
- प्रश्न: क्या मैं रिक्त ऑब्जेक्ट्स की जांच के लिए
nil?
का उपयोग कर सकता हूँ?
उत्तर: नहीं।nil?
केवलnil
की जांच करता है।blank?
याempty?
औरnil?
के संयोजन का उपयोग करें। - प्रश्न: “रिक्त” Ruby में अंतर्निहित क्यों नहीं है?
उत्तर: “रिक्त” की परिभाषा अत्यधिक संदर्भ-निर्भर है; एक सार्वभौमिक परिभाषा अव्यावहारिक होगी। - प्रश्न:
blank?
आमतौर पर कहाँ परिभाषित किया जाता है?
उत्तर: अक्सर ढाँचों या पुस्तकालयों के भीतर एक कस्टम एक्सटेंशन के रूप में, या विशिष्ट आवश्यकताओं के लिए किसी वर्ग के भीतर।