From: "Brian Schröder" Date: 2005-05-05T20:24:19+09:00 Subject: Re: Whats so different about a Hash? On 05/05/05, Andrew Walrond wrote: > Consider: > > irb(main):001:0> a=1 => 1 > irb(main):002:0> b=1 => 1 > irb(main):003:0> c={} => {} > irb(main):004:0> c[a]=1 => 1 > irb(main):005:0> c[b]=1 => 1 > irb(main):006:0> c.inspect => "{1=>1}" > > and > > irb(main):007:0> a="K" => "K" > irb(main):008:0> b="K" => "K" > irb(main):009:0> c={} => {} > irb(main):010:0> c[a]=1 => 1 > irb(main):011:0> c[b]=1 => 1 > irb(main):012:0> c.inspect => "{\"K\"=>1}" > > and > > irb(main):013:0> a=[1,2] => [1, 2] > irb(main):014:0> b=[1,2] => [1, 2] > irb(main):015:0> c={}=> {} > irb(main):016:0> c[a]=1 => 1 > irb(main):017:0> c[b]=1 => 1 > irb(main):018:0> c.inspect => "{[1, 2]=>1}" > > But the hash behaves differently: > > irb(main):019:0> a={1=>2} => {1=>2} > irb(main):020:0> b={1=>2} => {1=>2} > irb(main):021:0> c={} => {} > irb(main):022:0> c[a]=1 => 1 > irb(main):023:0> c[b]=1 => 1 > irb(main):024:0> c.inspect => "{{1=>2}=>1, {1=>2}=>1}" > > Why? > > I'm going for another coffee ;) > > Andrew Walrond > > I think the difference is: irb(main):005:0> [1,2].hash === [1,2].hash => true irb(main):006:0> {1=>2}.hash === {1=>2}.hash => false regards, Brian -- http://ruby.brian-schroeder.de/ multilingual _non rails_ ruby based vocabulary trainer: http://www.vocabulaire.org/ | http://www.gloser.org/ | http://www.vokabeln.net/