joe*_*lis 15 ruby module class-method instance-methods
在什么样的情况下代码:
module M
   extend self
   def greet
    puts "hello"
   end
end
使用更有利于说:
module M
   def self.greet
    puts "hello"
   end
end
在顶部,一个是扩展的实例方法,后者只是一个类方法,但在调用任一方法时,你必须使用M.greet,对吧?我很好奇是否有人可以说明何时使用一个代码而不是另一个代码.谢谢!
hor*_*guy 15
第一个例子通常是人们实现功能的方式module_function(当他们不知道这种方法的存在时).
A module_function既是实例方法又是类方法.在您的第二个代码示例中,该方法只是一个类方法.