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中

results matching ""

    No results matching ""