在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
module内可以有常量 >> module Test >> PI=3.14 >> end => 3.14 >> Test.PI >> Test::PI => 3.14 module的方法有两种,一种是module方法,这类方法可以直接调用。 >> module Test >> def Test.test_method >> puts "hello from module" >> end >> end => nil >> Test::test_method hello from module => nil 另一种是没有module名字的方法,这种方法不能直接调用,需要mixin到一个类中。 >> module Test >> def hello >> puts "hello" >> end >> end => nil >> Test::hello NoMethodError: undefined method `hello' for Test:Module from (irb):23 把module的方法添加到类中有两种方法。 继续前面的module Test的例子 >> class Class1 >> include Test >> end => Class1 >> Class1.new.hello hello => nil >> class Class2 >> extend Test >> end => Class2 >> Class2.hello hello => nil module常用的一个hook/callback是included方法,这个方法在module被include到一个类中的时候会被调用。 >> module Test >> def self.included(cls) >> puts "including module in class #{cls.name}" >> end >> end => nil >> class Class1 >> include Test >> end including module in class Class1 => Class1 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论