浏览redis存储库RubyGem 的源代码时,我偶然发现了以前从未见过的这种语法:
class Foo < self
# ...
end
Run Code Online (Sandbox Code Playgroud)
我的Google-Fu显然还不够强大,因为我一直找不到任何描述此功能的信息。
我正在猜测这个呢,以某种方式重开富,如超与自身扩展它,从而可以覆盖,可以调用原有的定义方法super。我靠近吗?
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,并且继承自它。
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |