zoukankan      html  css  js  c++  java
  • ruby的include与extend

    ruby提供了强大的继承机制,有关继承的方法很多。最简单就是“<<”,但还可以对要继承的东西进行细分,是把它添加到类中呢,还是实例中,这正是本文要介绍的内容。

    module Foo
      def foo
        puts 'heyyyyoooo!'
      end
    end
    
    class Bar
      include Foo
    end
    
    Bar.new.foo # heyyyyoooo!
    Bar.foo # NoMethodError: undefined method ‘foo’ for Bar:Class
    
    class Baz
      extend Foo
    end
    
    Baz.foo # heyyyyoooo!
    Baz.new.foo # NoMethodError: undefined method ‘foo’ for #
    

    我们可以看到通过包含(include),为目标类添加一些实例方法。而扩展则恰恰相反,为目标类添加相应的类方法。虽然同是一个模块,但方法的不同,会产生不同的效果。

  • 相关阅读:
    第十二周总结
    第十一周总结
    第十周总结
    人月神话阅读笔记04
    第九周总结
    第八周总结
    人月神话阅读笔记03
    主成分分析(PCA)算法介绍及matlab实现案例
    Cross-entropy
    压缩算法--TP(1978)
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/1701813.html
Copyright © 2011-2022 走看看