2017-01-28 4 views
0

ハッシュ値を宣言した後に配列をクリアし、ハッシュ値をそのまま残しておきたい。 それも可能ですか?参照を破棄せずに配列をクリアする

hash = {} 
number= "number" 
array = [1,2,3,4,5,6] 
hash[number]=array 

これは、アレイを消去した後に期待される結果です。

{"number"=>[1, 2, 3, 4, 5,6]} 
+0

配列をクリアして、ハッシュに割り当てられた後に新しい要素を追加することができます。 – olafsadventures

答えて

5
hash[number] = array.dup 
array.clear 
hash 
=> {"number"=>[1, 2, 3, 4, 5, 6]} 

あなたarrayだけの単純なオブジェクトを(整数であるとして)含まれている場合は、dupメソッドを使用することができます。それ以外の場合は詳細コピーが必要です。

+0

イッピー!それはうまくいった。 – olafsadventures

+0

他のオブジェクトでも 'dup'が最適な選択肢ですが、配列内でオブジェクトをクローンしたいことはほとんどありません。 – akuhn

関連する問題