2013-03-10 26 views
-1

有一個外部文件,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) 

感謝您的幫助

回答

2

您應該有一個全局變量(即,從$開始)能夠從您需要的文件訪問它。

2

是的,這是一個局部變量。局部變量侷限於它們定義的範圍。這就是爲什麼它們被稱爲本地變量。你不能訪問另一個作用域的局部變量,這就是局部變量的整個點。

如果您希望變量位於全局範圍內,則需要使用全局變量。

然而,在這種情況下,它看起來像你真的想要一個全局常量,而不是一個變量都:

CODE_WORDS = { 'a' => 'is a', 'b' => 'is b' } 

puts CODE_WORDS.map {|mykey, mysentence| "#{mykey} => #{mysentence}" }.join("\n")