• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rubyで配列名をfor文で変更したい)

rubyで配列名をfor文で変更したい

このQ&Aのポイント
  • ruby(というかプログラミング)初心者です。hoge0、hoge1、hoge2 の3つの配列をfor文の中で利用したいと思っていますが、配列名を順次変える方法についてわかりません。
  • 変数iを利用して配列名を順次変える方法を教えてください。hoge=hoge ??? i のような書き方ができません。
  • お時間があるときに、rubyでfor文の中で配列名を動的に変更する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>ただ最初に質問させていただいたように「hoge」と「i」をくっつけてhogei→hoge0,hoge1,hoge2と作りたいのですが、方法はあるでしょうか。 一応、eval() という組み込み関数があるので、 hoge=eval("hoge#{i}") で可能ですが、evalを初心者が乱用すると意図しない結果になる可能性もあります。

skip_jack
質問者

お礼

こんな組み込み関数があるんですね。 >evalを初心者が乱用すると意図しない結果になる可能性もあります。 簡単に調べてみました。 正しく利用しないとシステムが脆弱になるかもしれませんね。 十分理解したうえで使おうと思います。 ご回答たいへんありがとうございました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

for i in 0..2 hoge=[hoge0,hoge1,hoge2][i] ・・・・・ end そもそも最初からhoge[0],hoge[1],hoge[2]という配列にすれば簡単ですが。

skip_jack
質問者

補足

ご回答ありがとうございます。 なるほど、配列を作っておけばその要素番号で取り出せますね。 ただ最初に質問させていただいたように「hoge」と「i」をくっつけてhogei→hoge0,hoge1,hoge2と作りたいのですが、方法はあるでしょうか。