拥有包含
的外部文件wordlist.rb
code_words = { 'a' => 'is a', 'b' => 'is b' }
此文件存储在包含我的代码的同一目录中
要求'wordlist
'
code_word.each do | mykey, mysentence | puts mykey + "=> " mysentence end
当我运行此代码时,我收到以下消息
<main>': undefined local variable or method code_words' for main:Object (NameError)
感谢您的帮助
答案 0 :(得分:2)
您应该有一个全局变量(即以$
开头),以便能够从您需要的文件中访问它。
答案 1 :(得分:2)
是的,它是一个局部变量。局部变量是它们定义的范围的局部变量。这就是它们被称为 local 变量的原因。您无法访问另一个范围的局部变量,这是局部变量的全部要点。
如果您希望变量在全局范围内,则需要使用全局变量。
然而,在这种情况下,看起来你真的想要一个全局常量,而不是变量:
CODE_WORDS = { 'a' => 'is a', 'b' => 'is b' }
puts CODE_WORDS.map {|mykey, mysentence| "#{mykey} => #{mysentence}" }.join("\n")