ハッシュ値を宣言した後に配列をクリアし、ハッシュ値をそのまま残しておきたい。 それも可能ですか?参照を破棄せずに配列をクリアする
hash = {}
number= "number"
array = [1,2,3,4,5,6]
hash[number]=array
これは、アレイを消去した後に期待される結果です。
{"number"=>[1, 2, 3, 4, 5,6]}
ハッシュ値を宣言した後に配列をクリアし、ハッシュ値をそのまま残しておきたい。 それも可能ですか?参照を破棄せずに配列をクリアする
hash = {}
number= "number"
array = [1,2,3,4,5,6]
hash[number]=array
これは、アレイを消去した後に期待される結果です。
{"number"=>[1, 2, 3, 4, 5,6]}
hash[number] = array.dup
array.clear
hash
=> {"number"=>[1, 2, 3, 4, 5, 6]}
あなたarray
だけの単純なオブジェクトを(整数であるとして)含まれている場合は、dup
メソッドを使用することができます。それ以外の場合は詳細コピーが必要です。
イッピー!それはうまくいった。 – olafsadventures
他のオブジェクトでも 'dup'が最適な選択肢ですが、配列内でオブジェクトをクローンしたいことはほとんどありません。 – akuhn
配列をクリアして、ハッシュに割り当てられた後に新しい要素を追加することができます。 – olafsadventures