模块模块类与模块模块:: Ruby中的类

时间:2011-09-30 17:12:09

标签: ruby module

之间有什么区别
module MyModule
  module MySubModule
    class MySubModuleClass
      ...
    end
  end
end

module MyModule
  class MySubModule::MySubModuleClass
    ...
  end
end
在Ruby中

2 个答案:

答案 0 :(得分:1)

在第二个示例中,您定义的是class,第一个示例是module,如果MySubModule::MySubModuleClass不存在,则无法使用语法MySubModule 。所以你必须先定义它。

答案 1 :(得分:1)

第二种情况不起作用,除非“MySubModule”已在别处定义......

第二种情况不是“MySubModule”的正确定义,如果你没有在其他地方定义MySubModule会导致错误

NameError: uninitialized constant MyModule::MySubModule
    from (irb):2:in `<module:MyModule>'