मैं रूबी में वर्तमान खुली कक्षा कैसे निर्धारित करूं?रूबी वर्तमान कक्षा
class_name = self.class
एक initialized वस्तु पर obj
नामित:
मैं रूबी में वर्तमान खुली कक्षा कैसे निर्धारित करूं?रूबी वर्तमान कक्षा
class_name = self.class
एक initialized वस्तु पर obj
नामित:
एक class
परिभाषा शरीर के अंदर के साथ वर्ग मिल , self
कक्षा को ही संदर्भित करता है। Module#name
आपको कक्षा/मॉड्यूल का नाम बताएगा, लेकिन केवल तभी होगा जब वास्तव में एक हो। (रूबी में, "कक्षा का नाम" जैसी कोई चीज़ नहीं है। कक्षाएं किसी भी अन्य की तरह वस्तुएं होती हैं जो कि किसी अन्य की तरह वैरिएबल को सौंपी जाती हैं। यह केवल इतना है कि यदि आप निरंतर कक्षा वस्तु को असाइन करते हैं, तो name
विधि है कि निरंतर का नाम वापस आ जाएगी)
उदाहरण:।
puts class Foo
name
end
# Foo
लेकिन:
bar = Class.new
bar.name # => nil
BAR = bar
bar.name #=> 'BAR'
class_name = obj.class
आप एक वर्ग के रूप में 'वर्ग' का उपयोग करते हैं और 'वर्ग' एक आरक्षित कीवर्ड है। वैरिएबल 'क्लास' का नाम बदलें – cristian
+1 बिल्कुल मुझे जो चाहिए था :) – onetwopunch
'class_name' अभी भी उस चर के लिए एक महान नाम नहीं है, क्योंकि यह क्लास ऑब्जेक्ट है, नाम स्ट्रिंग नहीं है। चर के लिए एक बेहतर नाम 'klass' हो सकता है। – aridlehoover
अगर आप obj = SomeClass.new
है आप obj.class
मेरे मामले में, name
विधि को अधिलेखित कर दिया था, मैं to_s
मुझे इस दे पाते हैं एक ही परिणाम
class Foo
puts self.name
puts self.to_s
end
#=> Foo
#=> Foo
यह आपका 'आत्म' है! –