雖然這是事實,你不能訪問所需的文件中定義的局部變量,你可以訪問常量,您可以訪問存儲在你必須在兩種情況下訪問對象什麼。因此,根據您的目標,有幾種分享信息的方式。
最常見的解決方案可能是定義一個模塊並將共享值放在那裏。由於模塊是常量,因此您可以在需要的上下文中訪問它。
# in welcome.rb
module Messages
WELCOME = "hi there"
end
# in irb
puts Messages::WELCOME # prints out "hi there"
你也可以把這個值放到一個類裏面,效果差不多。或者,您可以將其定義爲文件中的常量。由於默認上下文是Object類的一個對象,稱爲main,您還可以在main上定義一個方法,實例變量或類變量。所有這些方法最終都會以不同的方式製造「全局變量」,或多或少,並且可能不適用於大多數目的。另一方面,對於具有非常明確的範圍的小型項目,它們可能沒有問題。
# in welcome.rb
WELCOME = "hi constant"
@welcome = "hi instance var"
@@welcome = "hi class var"
def welcome
"hi method"
end
# in irb
# These all print out what you would expect.
puts WELCOME
puts @welcome
puts @@welcome
puts welcome
不錯,作爲一個評論:約翰海蘭的代碼中的'WELCOME'可以被訪問,因爲它由* upcase *字母開頭,這使它成爲一個常量。 Ruby是有趣的。 – 2012-10-20 17:38:21