数组名称中的 Ruby 变量插值

问题描述 投票:0回答:1

我有一些名称相似的数组,我需要循环遍历数组名称:

level_1_foo
level_2_foo
level_3_foo
level_4_foo
level_5_foo

我想做类似以下的事情,其中

x
是数组名称中数字的值:

(1..5).each do |x|
  level_x_foo << some-value
end

这可以做到吗? 我尝试过

"level_#{x}_foo"
level_+x+_foo
和其他一些方法,但没有成功。

谢谢

ruby string-interpolation ruby-3.1
1个回答
0
投票

一种方法是使用

binding.local_variable_get
:

检索数组
(1..5).each do |x|
  binding.local_variable_get("level_#{x}_foo") << some-value
end

您也可以使用

eval
来完成此操作,但上述方法最大限度地减少了动态评估的代码。

© www.soinside.com 2019 - 2024. All rights reserved.