ObjectSpace可以获取当前内存中存在的变量
#基本说明
ObjectSpace.class #Module
ObjectSpace.each_object #<Enumerator: ObjectSpace:each_object(false)>, 返回的是迭代器
ObjectSpace.each_object(String).to_a.size #指定String类型变量的数量
#作用,ObjectSpace可以获取内存中的所有变量,所以可以通过ObjectSpace获取指定的变量,并对此进行操作
class A
end
a = A.new
#ObjectSpace获取A,a两个变量,只针对目前已经打开的变量,而不保存后续打开的变量
ObjectSpace.each_object(A) do |x|
x.instance_eval do
def hello
"hello #{self}"
end
end
end
p a.hello
p A.new.hello # 异常,A.new并不存在于ObjectSpace中