4
将下面的代码添加到对象应该允许我检索任何对象的单例类。访问单例类
class Object
def singleton_class
class << self; self; end
end
end
我有一个强力球类,我实例化这种方式
puts Powerball.new.singleton_class
puts Powerball.new.singleton_class
puts Powerball.singleton_class
puts Powerball.singleton_class
它给了我这个输出
#<Class:#<Powerball:0x007fd333040548>>
#<Class:#<Powerball:0x007fd333040408>>
#<Class:Powerball>
#<Class:Powerball>
因此,乐透类的两个实例具有唯一的ID,而直接在类上调用singleton_class不会产生对象ID。
问题
是IDS独一无二的,因为每个实例有一个单独的类?
据我所知,
self
内的一个类只是返回类,即类:强力球,但由于类是一个对象,不应该它也有一个ID?有没有办法访问该ID?
的单例类的有趣的文章可以在Devalot博客上找到,从这个答案http://stackoverflow.com/questions/13850971/why-are-symbols-in-ruby-not-thought-of-评论作为一种类型的可变/ 13871724#13871724 – BernardK