ruby解释器无法识别全局范围中的变量

时间:2012-06-11 06:14:39

标签: ruby global-variables

我收到第6行的错误。我尝试打印ruby解释器无法识别的全局变量。这是为什么 ?我该如何修改?

localVar = "Local Variable"
$globalVar = "Global Variable"
puts(localVar)
def func
puts("From the function func")
puts(globalVar) #line 6
end

def changer
globalVar = "New Global Var"
puts("New Global Var : #{globalVar}")
end
func #Call the function func
changer #Call the function changer

输出:

Local Variable
From the function func
global.rb:6:in `func': undefined local variable or method `globalVar' for main:Object (NameError)
    from global.rb:13:in `<main>'

3 个答案:

答案 0 :(得分:3)

您需要每次将$放在变量名称前面。

puts($globalVar) #line 6

答案 1 :(得分:1)

在定义或使用Ruby时,总是需要在Ruby中使用$前缀作为全局变量。

答案 2 :(得分:1)

这将为你做到这一点。 $是变量名称的一部分。

puts($globalVar)