gpt4 book ai didi

ruby - 在Ruby 中,有没有办法在当前上下文中动态定义局部变量?

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

<分区>

我想知道是否有一种方法可以让我在当前上下文中动态定义以前 undefined variable 。例如:

foo # => NameError: undefined method or local variable ...
# Some method call which sets foo = 1 in the local context
foo # => 1

换句话说,假设 foo 是未定义的,我正在寻找任何可以让我在不使用 foo 的情况下定义局部变量 foo 的代码 变量(例如,如果我有一些其他变量 bar 其值为 :foo 并且我不得不依赖它来设置 foo< 的值)。

似乎 eval('foo = 1')eval('foo = 1', binding) 或者,在 Ruby 2.1 中,binding。 local_variable_set(:foo, 1) 都等同于:

1.times do
foo = 1
end

换句话说,他们在本地上下文的上下文中设置foo,这样该值就无法在该上下文之外访问。

我想做的事情是否可行?

更新:这个问题并不特定于任何特定的局部变量上下文(模块/类、方法、过程、 block 等)。我有兴趣确切地知道可以或不能完成的任何上下文。

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