代码在什么情况下:
module M
extend self
def greet
puts "hello"
end
end
使用比说这样的话更有益:
module M
def self.greet
puts "hello"
end
end
在顶部,一个是被扩展的实例方法,而后者只是一个类方法,但是无论调用哪个方法,你都必须 M.greet ,对吧?我只是好奇是否有人可以阐明何时使用一个代码而不是另一个代码。谢谢!
最佳答案
第一个示例通常是人们实现 module_function
功能的一种方式(当他们不知道此方法的存在时)。
module_function
既是实例方法又是类方法。在您的第二个代码示例中,该方法只是一个类方法。
关于Ruby 模块和扩展 self ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3358047/