gpt4 book ai didi

Ruby 访问嵌套函数中的外部变量

转载 作者:数据小太阳 更新时间:2023-10-29 06:22:58 28 4
gpt4 key购买 nike

我确信对此有一个简单的答案;我就是找不到它。我在 Ruby 中创建了一个嵌套函数,但我无法从内部函数内部的外部函数访问变量:

def foo(x)
def bar
puts x
end
bar
42
end

foo(5)

我得到:NameError: undefined local variable or methodx' for main:Object`

类似的 Python 代码可以工作:

def foo(x):
def bar():
print x
bar()
return 42

foo(5)

那么我如何在 Ruby 中做同样的事情呢?

最佳答案

据我所知,在函数内定义命名函数不会让您访问任何局部变量。

您可以改为使用 Proc:

def foo(x)
bar = lambda do
puts x
end
bar.call
42
end

foo(5)

关于Ruby 访问嵌套函数中的外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1016408/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com