В том, какой ситуация является кодом:
module M
extend self
def greet
puts "hello"
end
end
более выгодный для использования говорят что-то как:
module M
def self.greet
puts "hello"
end
end
В вершине каждый - метод экземпляра, расширяемый, и последний является просто методом класса, но при вызове любого метода, Вы имели бы к M.greet, правильно? Мне было просто любопытно, если кто-либо мог бы пролить некоторый свет на то, когда использовать один код по другому.Спасибо!
Первый пример - это обычно способ, которым люди достигают функциональности module_function
(когда они не знают о существовании этого метода).
A module_function
является как методом экземпляра, так и методом класса. Во втором примере кода метод - это просто метод класса.
Это можно было бы сделать с вашим первым примером, но не со вторым:
include M
greet