module Hints
module Designer
def self.message
"Hello, World!"
end
end
end
Run Code Online (Sandbox Code Playgroud)
有没有办法使用以下代码来访问消息方法?
p Hints.Designer.message
Run Code Online (Sandbox Code Playgroud)
代替
p Hints::Designer.message
Run Code Online (Sandbox Code Playgroud)
该期间.仅用于访问方法.
双冒号::用于指示命名空间.
模块和类都可以相互嵌套.这将为嵌套类创建名称空间.(从技术上讲,Module是Class的一个实例.)因此,无论Hints或Designer是类还是模块,以下内容都是正确的.
Hints::Designer.message
Run Code Online (Sandbox Code Playgroud)
您可以通过irb在命令行上打开来尝试自己.Hints.Designer.message说NoMethodError: undefined method 'Designer' for Hints:Module.
更新 (因为我不允许发表评论......):
虽然Ruby中的许多东西都可以被覆盖("猴子修补"),但基本的操作员却不能.::是一个基本的语言功能,不应该是可定制的(为了防止大的混乱;)).