module MyModule
var = "ruby is magic"
end
magic.rb
require "./module.rb"
puts MyModule::var
错误:
`<main>': undefined method 'var' for MyModule:Module (NoMethodError)
答案 0 :(得分:2)
在ruby中,名称以大写字母开头的“变量”实际上是常量。
所以,当你编写这样的代码时:
module MyModule
MyConstant = "ruby is magic"
end
您实际上已经定义了常量,可以在代码中的任何其他位置访问(假设已加载此文件):
MyModule::MyConstant # => "ruby is magic"
另一方面,如果您定义本地变量(即以小写字母开头):
module MyModule
my_local_variable = "ruby is magic"
end
然后无法从定义它的范围之外访问它,因为......好吧,它是本地变量!