require, load, include, extend用法

     include主要用来将一个模块插入(mix-in)到一个类或者其它模块。即可以引入类方法也可以引入实型方法。

     在模块中定义类方法有别于在类中定义,应大 def self.included(cla) .......end方法中定义。

     model M

        #定义类方法

        def self.included(cla)

             def  cla.m_1

                  puts "it is a class method"

              end

        end

       def m_2

            puts "it is a instance method"

       end

end

#引入类方法和实例方法

class C

   include M

end


C.m_1                  # "it is a class method"

C.new.m_2         #"it is a instance method"

-----------------------------------------------------------------------------------------------------------------------------------------

extend 如果在类定义中引入模块,这样模块中方法就是类方法;如果在对象上引用就是某个实例的方法

model MA

    def ma

         puts 'it is ma'

    end

end


class CM

   extend MA

end


class CA

end


CM.ma     #'it is ma'

ca = CA.new

ca.extend(MA)

ca.ma    #'it is ma'

----------------------------------------------------------------------------------------

require与load 都是引入一个文件,require直接引入文件名不加后缀, load加后缀。两都之间最大不同就是require只引入一遍,load是执行一次就引入一次。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值