Techioz Blog

配列名の Ruby 変数補間

概要

似た名前の配列がいくつかあり、配列名をループする必要があります。

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、およびその他のいくつかを試しましたが、成功しませんでした。

ありがとう

解決策

# 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