为什么Ruby的散列一个整数n来2 * n + 1?
>> [0,1,2,3].each {|x| puts x.hash}
1
3
5
7
Run Code Online (Sandbox Code Playgroud)
我可以看到你并不总是需要复杂的哈希,特别是对于简单的对象.但是为什么'double和add 1'规则而不是做Python所做的事情,那就是将整数哈希给自己呢?
>>> map(hash,[0,1,2,3])
[0, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
有原因吗?