इस लेख में आप सीखेंगे कि रूबी निरीक्षण विधि कैसे काम करती है और हम इसका उपयोग क्यों करते हैं।
जब आप कोई स्ट्रिंग या सरणी प्रिंट करते हैं तो आप उसकी सामग्री देखते हैं।
उदाहरण :
puts [1,2,3] 1 2 3
लेकिन जब आप अपनी खुद की वस्तुओं को प्रिंट करते हैं…
आप इसे देखते हैं :
#<Cat:0x29458e0>
क्यों?
क्योंकि आपने रूबी को यह नहीं बताया कि इस वर्ग को इस तरह से कैसे प्रदर्शित किया जाए जो समझ में आता है।
यदि आप to_s . जैसी कोई विधि परिभाषित करते हैं, तो आप इसे बदल सकते हैं ।
आइए देखें कि यह कैसे काम करता है!
to_s को लागू करना
जब आप किसी ऑब्जेक्ट के साथ पुट का उपयोग करते हैं, तो रूबी to_s . को कॉल करती है वस्तु का एक स्ट्रिंग प्रतिनिधित्व प्राप्त करने की विधि।
डिफ़ॉल्ट रूप से आपको क्लास का नाम मिलता है (Cat )…
साथ ही कुछ संख्या जो object_id . का प्रतिनिधित्व करती है हेक्साडेसिमल प्रारूप में (0x29458e0 )।
यहां इसे बदलने का तरीका बताया गया है :
class Cat
def to_s
"I'm a cat"
end
end
puts Cat.new
# "I'm a cat"
यदि आपकी कक्षा में आवृत्ति चर हैं, तो आप उन्हें अपने ऑब्जेक्ट विवरण का हिस्सा बना सकते हैं।
इसे पसंद करें :
class Cat
attr_reader :color
def initialize(color)
@color = color
end
def to_s
"I'm a #{color} cat"
end
end
puts Cat.new("blue")
# "I'm a blue cat"
puts Cat.new("white")
# "I'm a white cat"
अब जब आप इस ऑब्जेक्ट को प्रिंट करेंगे तो आपको अधिक उपयोगी जानकारी दिखाई देगी।
क्या यह अच्छा नहीं है?
रूबी निरीक्षण विधि
आप किसी वस्तु का दो संभावित तरीकों से प्रतिनिधित्व कर सकते हैं।
पहले :
to_s Using का उपयोग करना ।
जब आप ऑब्जेक्ट प्रदर्शित करते हैं तो आप अपने उपयोगकर्ताओं को यह देखना चाहते हैं।
उदाहरण के लिए, टाइम ऑब्जेक्ट के साथ, आप समय को इस तरह से प्रदर्शित करेंगे जो समझ में आता है (2018-12-28 19:17:28 ), यह दिखाने के बजाय कि समय वास्तव में कैसे संग्रहीत होता है (1546021067 )।
फिर :
आप inspect कर सकते हैं ऑब्जेक्ट, यह आपको ऑब्जेक्ट का अधिक कच्चा संस्करण देता है।
क्या अंतर है?
to_sपरिभाषित करें ताकि जब आप पुट का उपयोग करते हैं, तो यह वस्तु का यह विशेष दृश्य दिखाएगा।- परिभाषित करें
inspectडिबगिंग में अपनी और अन्य डेवलपर्स की मदद करने के लिए।
यहां एक उदाहरण दिया गया है :
"abc".inspect
इस रूप में दिखाता है :
"abc"
निरीक्षण उद्धरण चिह्न, और विशेष वर्ण (जैसे \n . रखता है न्यूलाइन्स के लिए) दृश्यमान हो जाते हैं।
सबसे अच्छा हिस्सा?
आप inspect लागू कर सकते हैं अपनी कक्षाओं में विधि
यहां बताया गया है :
class Cat
attr_reader :color
def inspect
"Cat - id: #{object_id} - color: #{color}"
end
end
Cat.new("white").inspect
# "Cat - id: 23316588 - color: white"
इस तरह आप ऐसी वस्तुएं बना सकते हैं जो स्वयं का वर्णन करती हैं!
वीडियो ट्यूटोरियल
सारांश
आपने बेहतर कक्षाएं बनाने के लिए रूबी निरीक्षण और to_s विधियों का उपयोग करना सीख लिया है!
अगर आपको यह लेख पसंद आया हो तो कृपया इसे शेयर करें ताकि अधिक से अधिक लोग इसे ढूंढ सकें।
पढ़ने के लिए धन्यवाद।