Ruby on Rails
Tuesday, September 10, 2013
On Tuesday, September 10, 2013 8:27:13 AM UTC+1, tamouse wrote:
> I do know that Hash don't allow duplicate keys. But I would like to by
> which method hash check if any duplicate key present into it or not? As
> I can see "foo" have different `object_id`,which is expected. But in
> case of Hash key how this two different objects "foo" is treated as same
> object?
The hash's keys' object id's are not what is compared. If you take both of those strings, and did this:
"foo" == "foo"
You'd get true, regardless of the fact they have different object ids.
You are making this way way way more complicated than it is.
By default yes, eql? is used for hash keys (and eql? in turn generally calls ==).
You can ask for a hash to use object identity though:
h = {}.compare_by_identity => {}
h['a'] = 1 # => 1
h['a'] = 2 # => 2
h # => {"a"=>1, "a"=>2}
Although it's not something I've ever needed or seen in the wild.
Fred
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/e48dbc9e-6647-4820-a505-6141721e9a73%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment