我有一个哈希,它使用数组作为它的键。当我更改数组时,散列不再能获得相应的键和值:
1.9.3p194 :016 > a = [1, 2]
=> [1, 2]
1.9.3p194 :017 > b = { a => 1 }
=> {[1, 2]=>1}
1.9.3p194 :018 > b[a]
=> 1
1.9.3p194 :019 > a.delete_at(1)
=> 2
1.9.3p194 :020 > a
=> [1]
1.9.3p194 :021 > b
=> {[1]=>1}
1.9.3p194 :022 > b[a]
=> nil
1.9.3p194 :023 > b.keys.include? a
=> true
我做错了什么?
更新: OK。使用a.clone绝对是解决这个问题的一种方法。如果我想更改"a“,但仍然使用"a”来检索相应的值(因为"a“仍然是键之一),该怎么办?
https://stackoverflow.com/questions/12177074
复制相似问题