0

是否可以编写一些可以告诉我何时定义 Ruby 类的代码?

4

1 回答 1

2

是的!

class Object  
  def self.inherited(base)
    puts "#{base} inherited from object"
  end
end

class Animal
end

class Cat < Animal
end

运行上面的代码会打印以下内容:

Animal inherited from object
Cat inherited from object

基本上,self.inherited只要定义了继承自定义它的类的类,就会触发回调。穿上它Object,这就是任何课程!(虽然可能有一些我现在想不到的特殊情况例外)。

我可能应该添加免责声明,虽然可以做到这一点(因为 Ruby 作为一门语言有多棒),但是否建议这样做,尤其是在用于生产的代码中,我不太确定. 嗯,事实上,我很确定。这将是一个坏主意。

于 2013-02-23T14:34:17.593 回答