【发布时间】:2011-02-26 02:42:21
【问题描述】:
通常,我可能会通过以下方式获取 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...>>
假设我只想知道任意类的任意对象实例obj 的元类,我不想在obj 的类上定义metaclass(或类似)方法。
有没有办法做到这一点?
【问题讨论】:
标签: ruby metaprogramming metaclass singleton