“ Foo <self”类在Ruby中做什么?

Kap*_*old 1 ruby

浏览redis存储库RubyGem 的源代码时,我偶然发现了以前从未见过的这种语法:

class Foo < self
  # ...
end
Run Code Online (Sandbox Code Playgroud)

我的Google-Fu显然还不够强大,因为我一直找不到任何描述此功能的信息。

我正在猜测这个呢,以某种方式重开富,如超与自身扩展它,从而可以覆盖,可以调用原有的定义方法super。我靠近吗?

ndn*_*kov 6

class Foo < Bar
end
Run Code Online (Sandbox Code Playgroud)

您是如何告诉Ruby Foo继承自的Bar

在类定义中,self引用类本身:

# prints Foo
class Foo
  puts self
end
Run Code Online (Sandbox Code Playgroud)

所以

class Foo
  class Bar < self
  end
end
Run Code Online (Sandbox Code Playgroud)

只是说,Bar它嵌套在下面Foo,并且继承自它。