Почему некоторые модули имеют внутренние классы? - PullRequest
0 голосов
/ 12 марта 2020

Я знаю, как модуль можно использовать в классе в Ruby:

module Calculator 

    def add(a,b)
        a+b
    end

end
class Watch

    include Calculator

    def time 
        Time.now
    end

end
w = Watch.new()

puts w.time # 2020-03-11 22:34:01 +0000
puts w.add(3,5) # 8

Но иногда я вижу, что у какого-то модуля есть класс внутри. Например, в Rails, помощники:

module MyModule

    class MyClass

        def foo
            puts 'foo'
        end

    end

end

Какой смысл в этом?

Зачем мне нужен класс внутри модуля?

1 Ответ

3 голосов
/ 12 марта 2020

Модули могут быть использованы таким образом в целях определения объема. В вашем примере вы можете ссылаться на MyClass извне модуля с помощью MyModule::MyClass.

. Для этого есть несколько применений, например, группирование связанных классов в общем пространстве имен.

Лучше получить дополнительную информацию об этом из некоторых Ruby учебных пособий (для примеров и прочего). Проверьте "Ruby - Модули и Mixins " для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...