dポイントプレゼントキャンペーン実施中!

ruby(というかプログラミング)初心者です。
つまづいてしまったところがあり質問をさせていただきました。

hoge0、hoge1、hoge2 の3つの配列があります。
これをfor文の中で次のように利用したいと思いました。
for i in 0..2
 hoge=hoge ??? i ←不明な点 (例)hoge=hoge0 としたい
   ・
   ・
   ・
end

つまり変数iを利用して配列名を順次変えていきたいのですがどうすればいいでしょうか。
hoge="hoge#{i}"としたら文字列hoge0が代入されるだけですし、hoge+iのような書き方もできません。

お時間あるときで結構ですのでお教えください。

A 回答 (2件)

>ただ最初に質問させていただいたように「hoge」と「i」をくっつけてhogei→hoge0,hoge1,hoge2と作りたいのですが、方法はあるでしょうか。



一応、eval() という組み込み関数があるので、
hoge=eval("hoge#{i}")
で可能ですが、evalを初心者が乱用すると意図しない結果になる可能性もあります。
    • good
    • 0
この回答へのお礼

こんな組み込み関数があるんですね。
>evalを初心者が乱用すると意図しない結果になる可能性もあります。

簡単に調べてみました。
正しく利用しないとシステムが脆弱になるかもしれませんね。
十分理解したうえで使おうと思います。

ご回答たいへんありがとうございました。

お礼日時:2006/11/14 19:52

for i in 0..2


hoge=[hoge0,hoge1,hoge2][i]
・・・・・
end

そもそも最初からhoge[0],hoge[1],hoge[2]という配列にすれば簡単ですが。

この回答への補足

ご回答ありがとうございます。

なるほど、配列を作っておけばその要素番号で取り出せますね。

ただ最初に質問させていただいたように「hoge」と「i」をくっつけてhogei→hoge0,hoge1,hoge2と作りたいのですが、方法はあるでしょうか。

補足日時:2006/11/13 19:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!