Ruby 匿名类

Ruby 匿名类,ruby,Ruby,以下是一个例子: class A class << self p superclass end end a = A.new class << a p superclass end 打印行 #<Class:Object> A # A. ? 对于匿名类 class << self p superclass end class我不能100%确定我是否正确理解了这个问题。请重新措辞或提供更多细节,以防我误解

以下是一个例子:

class A
  class << self
    p superclass
  end
end

a = A.new

class << a
  p superclass
end
打印行

#<Class:Object>
A
#
A.
?

对于匿名类

  class << self
    p superclass
  end

class我不能100%确定我是否正确理解了这个问题。请重新措辞或提供更多细节,以防我误解

调用
超类
将返回一个对象,在本例中为
。在Ruby中,一切都是对象。据我所知,这是正确的行为


如果只想查看类的名称,请调用
p superclass.name


Edit调用
超类可以返回
nil
。执行此操作时:
class
p超类.name
在类A中打印为nil。Codeclass请注意,可以包含单例方法的元类与使用class.new do#..
#<Class:Object>
A
  class << self
    p superclass
  end