Ruby入门

 


           1、模块

           模块是独立在类和特定对象之外的实现。

          模块的好处在于可以按照需要添加到特定的对象之中。

       

   module FirstModule
               def go 
                   puts "car is running"
             end
            def self.show
                   puts "this is an white BMW"
             end
          end


      class car

             include FirstModule

     end

    ++++++++++++++++

     car=Car new

      car.go

 

    
        这样一来,一个类可以添加多个模块。以弥补不能多继承的缺点。

        模块还有命名空间的角色,以区别同名的方法。甚至可以区别同名的类。

        Module1.sayhello()   Module2.sayhello()可以是不同的实现。

  

      2、方法或全局变量的别名。

        用关键字alias为已经定义的方法或全局变量添加别名。

      

def meth
    puts "this is a method"
end
alias orig_meth meth
def meth 
    puts "this method is redefined"
end
p meth
p orig_meth

     一旦定义了别名,别名就和meth绑定起来了。但是重新定义meth以后,orig_meth也还是保持原来不变。

 

    3、undef_method ,undef这两个关键字可以释放一个方法的定义。即以后就不存在这个方法了。

    4、判断一个方法或表达式是否已经定义完成为define?

    5、begin模块先于任何文件的任何执行语句执行,而end模块后于任何执行语句执行。多个begin模块按照加载的顺序执行,而多个end模块则与此顺序相反。

        at_exit模块与end类似,但是晚于end模块执行。


    6、method_missing方法是一个系统调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值