数组名中的Ruby变量插值

oprakyz7  于 11个月前  发布在  Ruby
关注(0)|答案(2)|浏览(96)

我有几个类似命名的数组,我需要循环遍历数组名称:

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和其他几个,都没有成功。
谢谢

oipij1gg

oipij1gg1#

你可以做这样的事

# Initialize a hash
levels = {}

# Initialize your arrays
(1..5).each do |x|
   levels["level_#{x}_foo"] = []
end

# Now you can access your arrays like this
(1..5).each do |x|
  levels["level_#{x}_foo"] << 'some-value'
end

字符串

lawou6xi

lawou6xi2#

一种方法是使用binding.local_variable_get检索数组:

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

字符串
您也可以使用eval来执行此操作,但上述方法最小化了动态计算的代码。

相关问题