- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rubyで配列名をfor文で変更したい)
rubyで配列名をfor文で変更したい
このQ&Aのポイント
- ruby(というかプログラミング)初心者です。hoge0、hoge1、hoge2 の3つの配列をfor文の中で利用したいと思っていますが、配列名を順次変える方法についてわかりません。
- 変数iを利用して配列名を順次変える方法を教えてください。hoge=hoge ??? i のような書き方ができません。
- お時間があるときに、rubyでfor文の中で配列名を動的に変更する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>ただ最初に質問させていただいたように「hoge」と「i」をくっつけてhogei→hoge0,hoge1,hoge2と作りたいのですが、方法はあるでしょうか。 一応、eval() という組み込み関数があるので、 hoge=eval("hoge#{i}") で可能ですが、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]という配列にすれば簡単ですが。
質問者
補足
ご回答ありがとうございます。 なるほど、配列を作っておけばその要素番号で取り出せますね。 ただ最初に質問させていただいたように「hoge」と「i」をくっつけてhogei→hoge0,hoge1,hoge2と作りたいのですが、方法はあるでしょうか。
お礼
こんな組み込み関数があるんですね。 >evalを初心者が乱用すると意図しない結果になる可能性もあります。 簡単に調べてみました。 正しく利用しないとシステムが脆弱になるかもしれませんね。 十分理解したうえで使おうと思います。 ご回答たいへんありがとうございました。