2011-05-26 10 views
14

में किसी वर्ग के प्रत्येक उदाहरण को कैसे ढूंढें रूबी में एक निश्चित कक्षा के सभी ऑब्जेक्ट्स प्राप्त करने का कोई तरीका है?रुबी

स्पष्ट करने के लिए:

class Pokemon 
end 

pikatchu = Pokemon.new 
charmander = Pokemon.new 

तो, वहाँ एक रास्ता मैं किसी भी तरह के संदर्भ उन दो वस्तुओं (pikatchu और charmander) को पुनः प्राप्त कर सकता है?

मैंने वास्तव में इसे शुरू करने के माध्यम से कक्षा वर्ग में सभी को धक्का देने का सोचा, लेकिन यह संभवतः बड़ा हो सकता है, और मुझे लगता है कि इसमें मूल रूबी दृष्टिकोण हो सकता है।

उत्तर

26

समाधान की तरह

ObjectSpace.each_object(Pokemon) {|x| p x} 

जो पैदा करता है

<Pokemon:0x0000010098aa70> 
<Pokemon:0x00000100992158> 
=> 2 

विवरण PickAxe book अध्याय में चर्चा कर रहे हैं ObjectSpace.each_object विधि का उपयोग करने के लिए है 25