有没有办法在Ruby中获取某个类的所有对象?
澄清:
class Pokemon
end
pikatchu = Pokemon.new
charmander = Pokemon.new
Run Code Online (Sandbox Code Playgroud)
那么,有没有办法可以以某种方式检索引用那两个对象(pikatchu和charmander)?
我实际上想过通过初始化把它全部推到一个类数组中,但这可能会变大,我假设可能有一个原生的Ruby方法.
Gra*_*yer 29
解决方案是使用ObjectSpace.each_object类似的方法
ObjectSpace.each_object(Pokemon) {|x| p x}
Run Code Online (Sandbox Code Playgroud)
哪个产生
<Pokemon:0x0000010098aa70>
<Pokemon:0x00000100992158>
=> 2
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅PickAxe第25章