Ruby允许使用可变对象作为哈希键,我很好奇当这个对象被更新时会发生什么。如果它被更新了,似乎无法通过键请求检索到引用的对象。
为什么会这样工作呢?为什么我不能提供一个键来返回与我最初用作键的列表相关联的值呢?
key = [1,2]
test = {key => 12}
test # => {[1, 2] => 12}
test[key] # => 12
test[[1,2]] # => 12
test[[1,2,3]] # => nil
key << 3
test # => {[1, 2, 3] => 12}
test[key] # => nil
test[[1,2]] # => nil
test[[1,2,3]] # => nil
为什么会这样工作呢?为什么我不能提供一个键来返回与我最初用作键的列表相关联的值呢?