• mixin
  • Ruby mixin

    mixin

    module First
      first = 1
    
      def greet
        p 'hello'
      end
    end
    
    module Second
      second = 2
    
      def self.smile
        p 'smile'
      end
    end
    
    class People
      # include First
      extend First
      extend Second
    
      def eat
        p 'eat'
      end
    end
    
    p = People.new
    p.greet
    # p.smile
    People.smile
    

    当使用include First时,只能使用p.greet,而如果使用extend则只能通过Person.greet调用,而对于module Second中的smile方法,是无法混入的

    上一篇:Ruby class

    下一篇:Ruby array