Ruby在嵌套函数中访问外部variables
我确信这个问题有一个简单的答案。 我似乎无法find它。 我在Ruby中做了一个嵌套的函数,并且在内部函数中从外部函数访问variables时遇到了问题:
def foo(x) def bar puts x end bar 42 end foo(5)
我得到: NameError: undefined local variable or method
x'为主:对象
类似的Python代码工作:
def foo(x): def bar(): print x bar() return 42 foo(5)
那么我如何在Ruby中做同样的事情呢?
据我所知,在一个函数中定义一个命名函数并不能让你访问任何局部variables。
你可以做的是使用Proc:
def foo(x) bar = lambda do puts x end bar.call 42 end foo(5)