• ベストアンサー

変数に変数を使いたいのですが、できますでしょうか?

変数に変数を使いたいのですが できますでしょうか? 【↓やりたい事のイメージ】 ------------------------------ for i in 1..3 hensuu【ここにi】 = i end ------------------------------ 結果として 変数「hensuu1」に1が代入され 変数「hensuu2」に2が代入され 変数「hensuu3」に3が代入されるようにしたいのです。 宜しくお願い致します。

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

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

以下のようにしてください。 ---------------------- for i in 1..3 eval("$hensuu#{i} = i") end #各変数の内容を確認する p $hensuu1 p $hensuu2 p $hensuu3 ----------------- 実行結果は以下の通り 1 2 3

okok1678
質問者

お礼

ありがとうございました! おかげさまで上手くいきました!

その他の回答 (2)

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.2

> 配列にしない理由は > hensuu【i】 = Class.new > という感じで使いたいからです hensuu[i] = Class.new との違いがわかりません。補足にどうぞ。

okok1678
質問者

補足

すみません。 勘違いしていたようで hensuu[i] = Class.newのような記述でも 動作するようです。 動作しない物だと思っていました。 ですが、evalでも実現したいと思いますので 宜しくお願い致します。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

evalを使ってできないわけではありませんが.... 配列にしないのは、なにか理由があるのですか?

okok1678
質問者

お礼

お返事ありがとうございます! evalですか。 ちょっと調べて見ます。 配列にしない理由は hensuu【i】 = Class.new という感じで使いたいからです

okok1678
質問者

補足

evalについて調べてみたのですが どうも使い方が理解できませんでした。 もし宜しければ、使い方をご教授お願い致します。 以下のようにやると良い気がしましたが エラーが出てしまいました。 for i in 1..3 eval("$hensuu"+i.to_s) = i end print ($hensuu1) print ($hensuu2) print ($hensuu3)

関連するQ&A

専門家に質問してみよう