gpt4 book ai didi

Ruby:按名称设置全局变量

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

我正在尝试在方法中动态设置(不是创建,它已经存在)全局 ruby​​ 变量。变量名由传递的符号决定。我目前正在做的是:

def baz(symbol)
eval("$#{symbol}_bar = 42")
end

$foo_bar = 0
baz(:foo)
puts $foo_bar # => 42

但对我来说,这种感觉很不对劲。这是这样做的方法吗?还是可以用不同的方式来做?另外,我不知道 evals 在 ruby​​ 中的表现如何。它运行速度比

$foo_bar = 42

最佳答案

我觉得这个方法不错。这guy说评估效率要差得多,尽管这个帖子已经有 3 年了。

我要指出的是,这种方法表明你有很多全局变量,如果代码库很重要,这通常是一种代码味道。

关于Ruby:按名称设置全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5444198/

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