- ベストアンサー
多重配列の定義について。【Ruby】
hoge = [ [ ], [ ], [ ], [ ], [ ], [ ] ] 現在、上のような配列の定義をしています。 これを変数で[ ]の数を変えて定義したいのですが、 よい方法はないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 間違いでした。Array.new(n,[]) だと全部同じオブジェクトになるのでだめですね。 n=6; Array.new(n){ [] } ####(ver1.7以降)
その他の回答 (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,[]) みたいなことでしょうか?
お礼
ありがとうございます。 これで、プログラムが見やすくなりました。