【问题标题】:when does the ruby class 'inherited' hook method fire?ruby 类“继承”的钩子方法何时触发?
【发布时间】:2015-02-02 23:47:57
【问题描述】:

继承的钩子什么时候触发?

我问是因为我需要一种方法在继承类中的任何代码被触发之前触发它。

同时我不希望这段代码在父类中运行(这就是为什么我不能直接将代码转储到父类中)。

【问题讨论】:

    标签: ruby


    【解决方案1】:

    基类的self.inherited 方法(如果已定义)被调用子类的主体被评估之前。

    这很容易向自己证明:

    class Base
      def self.inherited(what)
        puts "base"
      end
    end
    
    class Child < Base
      puts "child"
    end
    

    输出是

    基地
    孩子

    但是,我无法保证确实如此。在您这样做之前,我不一定认为这适用于所有当前和 Ruby 的实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 2020-07-13
      • 2020-06-18
      • 2015-12-27
      • 1970-01-01
      • 2011-10-24
      相关资源
      最近更新 更多