2013-06-01 18:02

変数名を動的に呼び出す

例えば

int1 int2 int3

という3つの変数があるとして。

計算するのに、

ruby
sum = int1 + int2 + int3

とできますが。

計算する変数が、

int1 int2 ... int99 int100

みたいにたくさんある場合。

ruby
sum = int1 + int2 + ... + int99 + int100

のようにはなかなかできない。
のでループして計算したい。

そんなときは

ruby
1.upto(100) do |i|
  sum = sum.to_i + eval("int" + i.to_s)
end

というようにすると eval("int" + i.to_s) で、 int1 ... int100 を動的に呼び出すことができ、ループで計算を処理することができます。