В рубине я понимаю, что функции модуля могут быть доступны без смешивания в модуле с помощью module_function
, как показано здесь. Я вижу, как это полезно, поэтому вы можете использовать эту функцию без смешивания в модуле.
module MyModule
def do_something
puts "hello world"
end
module_function :do_something
end
Мой вопрос заключается в том, почему вы, возможно, захотите, чтобы функция определяла оба этих способа.
Почему бы просто не
def MyModule.do_something
ИЛИ
def do_something
В каких случаях было бы полезно иметь доступную функцию для смешения или использования в качестве статического метода?