В чем разница между этими соглашениями о пространстве имен в Ruby?

Итак, Модуль может использоваться в Ruby для обеспечения пространства имен в дополнение к миксинам, как это:

module SomeNamespace
  class Animal

  end
end

animal = SomeNamespace::Animal.new

Но я также видел следующее использование:

module SomeNamespace
end

class SomeNamespace::Animal

end

animal = SomeNamespace::Animal.new

Мой вопрос в том, чем они отличаются (если отличаются) и какой из них более идиоматичен для Ruby?

38
задан Martin 19 October 2011 в 12:40
поделиться