Ruby入门

来源:互联网 发布:传智播客python百度云 编辑:程序博客网 时间:2024/05/20 06:10
 


           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"endalias orig_meth methdef meth     puts "this method is redefined"endp methp orig_meth

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

 

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

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

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

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


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

原创粉丝点击