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

रूबी ऑब्जेक्ट्स कैसे बनाएं जो खुद का वर्णन करें

इस लेख में आप सीखेंगे कि रूबी निरीक्षण विधि कैसे काम करती है और हम इसका उपयोग क्यों करते हैं।

जब आप कोई स्ट्रिंग या सरणी प्रिंट करते हैं तो आप उसकी सामग्री देखते हैं।

उदाहरण :

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 विधियों का उपयोग करना सीख लिया है!

अगर आपको यह लेख पसंद आया हो तो कृपया इसे शेयर करें ताकि अधिक से अधिक लोग इसे ढूंढ सकें।

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


  1. रूबी में स्ट्रक्चर और ओपनस्ट्रक्चर का उपयोग कैसे करें?

    रूबी में स्ट्रक्चर क्या है? एक संरचना एक अंतर्निहित रूबी वर्ग है, इसका उपयोग नए वर्ग बनाने के लिए किया जाता है जो मूल्य वस्तुओं का उत्पादन करते हैं। संबंधित विशेषताओं को एक साथ संग्रहीत करने के लिए एक मूल्य वस्तु का उपयोग किया जाता है। यहां एक उदाहरण दिया गया है : एक Point दो निर्देशांकों के साथ

  1. कला पोर्टफोलियो बनाने के लिए एक्सेल ऑब्जेक्ट का उपयोग कैसे करें

    यदि आप कला पोर्टफोलियो को आसानी से बनाने के लिए एक्सेल ऑब्जेक्ट्स का उपयोग करने की प्रक्रियाओं की तलाश कर रहे हैं, तो यह लेख आपके लिए मददगार होगा। तो, आइए इस कार्य को करने के विस्तृत चरणों को जानने के लिए मुख्य लेख से शुरू करते हैं। कार्यपुस्तिका डाउनलोड करें Excel में ऑब्जेक्ट डालने का क्या मतलब है

  1. एक ऐसा डेटाबेस कैसे बनाएं जो एक्सेल में अपने आप अपडेट हो जाए

    यह लेख बताता है कि कैसे बनाना एक डेटाबेस एक्सेल . में जो अपडेट स्वचालित रूप से 4 उपयोगी तरीकों की मदद से। गतिशील डेटा के साथ काम करते समय यह एक महत्वपूर्ण विशेषता है। जब डेटाबेस किसी अन्य स्रोत के डेटा पर निर्भर करता है, तो स्रोत डेटा के अनुसार स्वचालित अपडेट बहुत महत्वपूर्ण होता है। आइए विधियों से