小编Sta*_*rom的帖子

给定一个Ruby对象的实例,我如何获得它的元类?

通常,我可能会使用以下内容获取Ruby对象的特定实例的元类:

class C
  def metaclass
    class << self; self; end
  end
end

# This is this instance's metaclass.
C.new.metaclass => #<Class:#<C:0x01234567>>

# Successive invocations will have different metaclasses,
# since they're different instances.
C.new.metaclass => #<Class:#<C:0x01233...>>
C.new.metaclass => #<Class:#<C:0x01232...>>
C.new.metaclass => #<Class:#<C:0x01231...>>
Run Code Online (Sandbox Code Playgroud)

假设我只想知道任意类的任意对象实例的元obj类,并且我不想metaclass在类的上定义(或类似)方法obj.

有没有办法做到这一点?

ruby singleton metaprogramming metaclass

4
推荐指数
2
解决办法
654
查看次数

标签 统计

metaclass ×1

metaprogramming ×1

ruby ×1

singleton ×1