Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Should hash equality ignore default values ?
Tomasz Wegrzanowski
5/7/2007 9:01:00 PM
Hash equality right now ignores the default values.
So a == b may be true even if a[0] == b[0] would be false.
Is this behaviour intended ?
irb(main):001:0> a = Hash.new(0)
=> {}
irb(main):002:0> b = Hash.new(42)
=> {}
irb(main):003:0> a == b
=> true
irb(main):004:0> a[0] == b[0]
=> false
irb(main):005:0> c = Hash.new{|ht,k| ht[k] = 5}
=> {}
irb(main):006:0> a == c
=> true
irb(main):007:0> a[0] == c[0]
=> false
--
Tomasz Wegrzanowski [
http://t-a-w.blo...
]
1 Answer
Robert Dober
5/8/2007 12:11:00 AM
0
On 5/7/07, Tomasz Wegrzanowski <tomasz.wegrzanowski@gmail.com> wrote:
> Hash equality right now ignores the default values.
> So a == b may be true even if a[0] == b[0] would be false.
>
> Is this behaviour intended ?
>
> irb(main):001:0> a = Hash.new(0)
> => {}
> irb(main):002:0> b = Hash.new(42)
> => {}
> irb(main):003:0> a == b
> => true
> irb(main):004:0> a[0] == b[0]
> => false
> irb(main):005:0> c = Hash.new{|ht,k| ht[k] = 5}
> => {}
> irb(main):006:0> a == c
> => true
> irb(main):007:0> a[0] == c[0]
> => false
>
>
> --
> Tomasz Wegrzanowski [
http://t-a-w.blo...
]
>
>
Good question Tomasz and furthermore....
irb(main):006:0> h=Hash.new{|h,k|h[k]=1}
=> {}
irb(main):007:0> g=Hash.new{|h,k|h[k]=2}
=> {}
irb(main):008:0> h==g
=> true
irb(main):009:0> h[1] ### We just must not forget that this is an assignment!!!
=> 1
irb(main):010:0> h==g
=> false
The second result of the comparision is clear h== {1 =>1} and g=={}
although this might be surprising I think it is about ok, without this
we could not compare to literals...
tough call though
I am eager to hear other opinions.
Robert
--
You see things; and you say Why?
But I dream things that never were; and I say Why not?
-- George Bernard Shaw
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Should hash equality ignore default values ?
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password