2012-06-11 7 views
2

6 번 줄에 오류가 있습니다. 루비 인터프리터가 인식하지 못하는 전역 변수를 인쇄하려고합니다. 그게 왜? 어떻게 수정할 수 있습니까?전역 범위의 변수가 루비 인터프리터에 의해 인식되지 않습니다.

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

당신은 변수 이름 앞에 $마다 시간을 넣어해야합니다. 정의하거나 사용할 때

puts($globalVar) #line 6 
1

당신은 항상, 루비 글로벌 변수의 $ 접두사를 사용해야합니다.

1

트릭을 수행해야합니다. $는 변수 이름의 일부입니다.

puts($globalVar) 
관련 문제