我有几个类似命名的数组,我需要循环遍历数组名称:
level_1_foo level_2_foo level_3_foo level_4_foo level_5_foo
字符串我想做一些类似于下面的事情,其中x是数组名称中数字的值:
x
(1..5).each do |x| level_x_foo << some-value end
型我试过"level_#{x}_foo",level_+x+_foo和其他几个,都没有成功。谢谢
"level_#{x}_foo"
level_+x+_foo
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
字符串
lawou6xi2#
一种方法是使用binding.local_variable_get检索数组:
binding.local_variable_get
(1..5).each do |x| binding.local_variable_get("level_#{x}_foo") << some-value end
字符串您也可以使用eval来执行此操作,但上述方法最小化了动态计算的代码。
eval
2条答案
按热度按时间oipij1gg1#
你可以做这样的事
字符串
lawou6xi2#
一种方法是使用
binding.local_variable_get
检索数组:字符串
您也可以使用
eval
来执行此操作,但上述方法最小化了动态计算的代码。