• ベストアンサー

多重配列の定義について。【Ruby】

hoge = [ [ ], [ ], [ ], [ ], [ ], [ ] ] 現在、上のような配列の定義をしています。 これを変数で[ ]の数を変えて定義したいのですが、 よい方法はないのでしょうか?

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

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

#1です。 間違いでした。Array.new(n,[]) だと全部同じオブジェクトになるのでだめですね。 n=6; Array.new(n){ [] } ####(ver1.7以降)

apache6
質問者

お礼

ありがとうございます。 これで、プログラムが見やすくなりました。

その他の回答 (2)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

こんなのとか: def Array.newDimension( *arg ) return [] if arg.length == 0; n = arg.shift; (1..n).map{|k| newDimension(*arg); }; end a = Array.newDimension( 6 ) p a; a[0] << "hoge"; p a;

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

質問の意味がよくわかりませんが、 n=6 hoge=Array.new(n,[]) みたいなことでしょうか?

関連するQ&A