我相信这有一个简单的答案; 我似乎无法找到它.我在Ruby中创建了一个嵌套函数,但我无法从内部函数内部的外部函数访问变量:
def foo(x)
def bar
puts x
end
bar
42
end
foo(5)
Run Code Online (Sandbox Code Playgroud)
我得到:NameError: undefined local variable or methodx'为main:Object`
类似的Python代码有效:
def foo(x):
def bar():
print x
bar()
return 42
foo(5)
Run Code Online (Sandbox Code Playgroud)
那么我如何在Ruby中做同样的事情呢?
我有一个名为test.rb的Ruby文件
ff="ff"
def test
puts ff
end
Run Code Online (Sandbox Code Playgroud)
我执行它,得到错误:
test.rb:3:in `test': undefined local variable or method `ff' for main:Object (NameError)
这是什么原因?有没有文件可以解释它?