2016-07-28 9 views
2
1.upto(3) do |n| 
    arr"#{n}" = Array.new 
end 

私の目標は、そういう名前の3つの空の配列で終わることです。Rubyイテレータのメソッド番号付け配列

arr1 = [] 
arr2 = [] 
arr3 = [] 

このコードを動作させるにはどうすればよいですか?

+0

配列またはキーとして 'n'の値を持つハッシュ? – guitarman

+0

@guitarman あなたはちょうどあなたが言ったことを理解するためにnoobのあまりにも多くを持っています – iswg

答えて

4

ローカル変数を動的に作成しようとしています。それは悪い考えであり、または簡単ではないは取り除くことができません。

既に提案されているように、格納にはデータ構造を使用してください。 、ハッシュを

arr = [] 
1.upto(3) do |n| 
    arr << Array.new 
end 

や、カスタムインデックスを維持する必要がある場合:あなたは効果的に配列を作成、なぜそれを格納するための配列を使用していないあなたは、二次元を使用していないのはなぜ

arr = {} 
1.upto(3) do |n| 
    arr[n] = Array.new 
end 
+2

も ​​"不可能"と読まれるべきではありません "Binding#local_variable_set'があります。 1つのコンテキストから別のコンテキストにローカル変数を伝播する方法はありません。 – mudasobwa

+0

記録のために、ローカル変数はRuby v1.8で(g 'eval'を使って)作成できますが、それ以降のバージョンでは作成できませんでした。 –

関連する問題