This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
Using an Array or Other Modifiable Object as a Hash Key | ||
---|---|---|
Code | Expected | Actual |
coordinates = [10, 5] treasure_map = { coordinates => 'jewels' } treasure_map[coordinates] |
"jewels" | "jewels" |
coordinates << -5 coordinates |
[10, 5, -5] | [10, 5, -5] |
treasure_map[coordinates] |
nil | nil |
treasure_map.rehash treasure_map[coordinates] |
"jewels" | "jewels" |
module ReliablyHashable def hash return object_id end end class ReliablyHashableArray < Array include ReliablyHashable end coordinates = ReliablyHashableArray.new([10,5]) treasure_map = { coordinates => 'jewels' } treasure_map[coordinates] |
"jewels" | "jewels" |
coordinates.push(-5) treasure_map[coordinates] |
"jewels" | "jewels" |
a = [1,2] b = a.clone a.hash |
11 | 11 |
b.hash |
11 | 11 |
a = ReliablyHashableArray.new([1,2]) b = a.clone a.hash |
-606031406 | -606028286 |
b.hash |
-606034266 | -606031146 |