我不是100%确定Ruby变量范围是如何工作的,而且我在使用require "path.rb"
语句时遇到了麻烦。这是导致问题的代码段:
档案a.rb:
a = {
:hey => "ho"
}
require "path/to/b.rb" # => true
文件b.rb:
b = "harhar"
a[:test] = b
a.rb
的范围在module :: class中,而不是主要的全局范围,当我尝试访问a
中的b.rb
变量时,我收到一个错误,说明a
变量不在当前范围内。
我在某处读到了包含在自己范围内的文件,以免发生冲突,如果是这样,那么解决这个问题的惯例是什么?
答案 0 :(得分:2)
顶级本地变量是文件的本地变量。您应该使用实例变量,模块变量,方法,常量或全局变量来代替使用本地变量 - 这些变量在程序中的所有位置都可见。 (您要使用哪一个取决于具体情况。在某些情况下,每种存储数据的方式都比其他方式更有意义。)