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
为什么会这样?为什么我不能为哈希提供一个键,该键将返回与我原来用作键的列表关联的值?