2011-12-26 6 views
0

私はa = b = c = []Rubyでobject_idが異なるオブジェクトを初期化する方法は?

のような割り当てとオブジェクトを初期化する場合、この変数が同じのobject_idを持っている:

[a, b, c].map {|e| e = [] } 

a, b, c = Array.new(3, []) 

a, b, c = Array.new(3, Array.new) 

をそれは、B、Cの変数を初期化doensn't:a.object_id == b.object_id == c.object_id

はまた、私は試してみましたが異なる object_ids

変数a、b、cを異なるオブジェクトiで初期化する方法はありますか同じ値== []でdsですが?

答えて

2

これはいかがですか?

a = [] 
b = [] 
c = [] 
+0

私は私のコードでは、[]で割り当てに多くの行を削除したい、というのです。 –

+0

@sharipov_ru:別の答えを見てください。 –

+0

あなたはそのような行を何本持っていますか? 3つ以上がコードの匂いを提案する。 –

8

これらの可能な解決策についてどのように:私はこの質問を投稿する理由

a,b,c=[],[],[] 
a,b,c=(0..2).map{[]} 
a,b,c=Array.new(3){[]} 
+0

cool!どうもありがとう! –

関連する問題