38
여기에 대한 간단한 대답이있을 것입니다. 나는 그것을 찾을 수없는 것 같습니다. I 얻을중첩 된 함수에서 외부 변수에 액세스하는 Ruby
def foo(x)
def bar
puts x
end
bar
42
end
foo(5)
: NameError: undefined local variable or method
X '메인 님 Object`를
유사한 파이썬 코드 나 루비 중첩 함수를 만들고, I 문제 내부 함수 내에 외부 함수의 변수에 액세스하는 데시켰다 작품 :
def foo(x):
def bar():
print x
bar()
return 42
foo(5)
그래서 어떻게 루비에서 같은 일을합니까?
여기서 중요한 (그러나 미묘한) 구분 데프 ... 끝이 방법이 아닌 함수를 정의한다는 것입니다 :
은 당신이 대신 할 수있는 것은 PROC를 사용합니다. tadman이 보여 주듯이 lambda/proc을 사용하여 함수를 정의하고 클로저에서 지역 변수를 캡처합니다. – rampion