S
Sébastien Wautelet
I'm having some trouble understanding how hashes work in Ruby. Consider
the following test :
irb(main):002:0> v=Vector[4,5]
=> Vector[4, 5]
irb(main):003:0> v2=Vector[4,5]
=> Vector[4, 5]
irb(main):004:0> v==v2
=> true
irb(main):005:0> v.hash
=> 17
irb(main):006:0> v2.hash
=> 17
irb(main):007:0> h=Hash.new
=> {}
irb(main):008:0> h[v]="whatever is in (4,5)"
=> "whatever is in (4,5)"
irb(main):009:0> h[v2]
=> nil
I'd have expected h[v2] => "whatever is in (4,5)", since v==v2 and both
have the same hash value... what am I doing wrong?
the following test :
irb(main):002:0> v=Vector[4,5]
=> Vector[4, 5]
irb(main):003:0> v2=Vector[4,5]
=> Vector[4, 5]
irb(main):004:0> v==v2
=> true
irb(main):005:0> v.hash
=> 17
irb(main):006:0> v2.hash
=> 17
irb(main):007:0> h=Hash.new
=> {}
irb(main):008:0> h[v]="whatever is in (4,5)"
=> "whatever is in (4,5)"
irb(main):009:0> h[v2]
=> nil
I'd have expected h[v2] => "whatever is in (4,5)", since v==v2 and both
have the same hash value... what am I doing wrong?