【发布时间】:2015-02-02 23:47:57
【问题描述】:
继承的钩子什么时候触发?
我问是因为我需要一种方法在继承类中的任何代码被触发之前触发它。
同时我不希望这段代码在父类中运行(这就是为什么我不能直接将代码转储到父类中)。
【问题讨论】:
标签: ruby
继承的钩子什么时候触发?
我问是因为我需要一种方法在继承类中的任何代码被触发之前触发它。
同时我不希望这段代码在父类中运行(这就是为什么我不能直接将代码转储到父类中)。
【问题讨论】:
标签: ruby
基类的self.inherited 方法(如果已定义)被调用在子类的主体被评估之前。
这很容易向自己证明:
class Base
def self.inherited(what)
puts "base"
end
end
class Child < Base
puts "child"
end
输出是
基地
孩子
但是,我无法保证确实如此。在您这样做之前,我不一定认为这适用于所有当前和 Ruby 的实现。
【讨论】: