两者之间有什么区别:
module Outer
module Inner
class Foo
end
end
end
和这个:
module Outer::Inner
class Foo
end
end
我知道如果前面没有定义
Outer
,则后一个示例将不起作用,但是在恒定范围内还有一些其他差异,我可以在SO或文档中找到它们的描述(包括Ruby编程书) 最佳答案
至少有一个区别-常量查找,请检查以下代码:
module A
CONST = 1
module B
CONST = 2
module C
def self.const
CONST
end
end
end
end
module X
module Y
CONST = 2
end
end
module X
CONST = 1
module Y::Z
def self.const
CONST
end
end
end
puts A::B::C.const # => 2, CONST value is resolved to A::B::CONST
puts X::Y::Z.const # => 1, CONST value is resolved to X::CONST
关于ruby - 嵌套模块定义和在Ruby中的定义中使用::有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11393169/