2011-05-26 55 views
14

有沒有辦法在Ruby中獲取某個類的所有對象?如何在Ruby中查找類的每個實例

澄清:

class Pokemon 
end 

pikatchu = Pokemon.new 
charmander = Pokemon.new 

那麼,有沒有一種方法,我可以以某種方式檢索引用這兩個對象(pikatchucharmander)?

我實際上想過通過初始化將它們全部放到一個類數組中,但這可能會變得很大,我假設可能有一種本地Ruby方法。

回答

26

的解決方案是使用ObjectSpace.each_object方法等

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

產生

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

細節在PickAxe book章中討論25

相關問題