mirror of
https://github.com/ruby/ruby.git
synced 2025-08-23 13:04:13 +02:00
* hash.c: added documentation for Hash about how it uses eql? and
hash methods for the keys. [ruby-core:09995] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
46e8b340df
commit
aaae2e4765
2 changed files with 38 additions and 1 deletions
|
@ -3,6 +3,11 @@ Tue Jan 23 18:26:12 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
|
|||
* lib/cgi.rb (CGI::QueryExtension::read_multipart): use == instead
|
||||
of ===. [ruby-dev:30176]
|
||||
|
||||
Tue Jan 23 10:48:17 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||
|
||||
* hash.c: added documentation for Hash about how it uses eql? and
|
||||
hash methods for the keys. [ruby-core:09995]
|
||||
|
||||
Mon Jan 22 14:57:25 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||
|
||||
* ext/socket/socket.c: fix errors in socket sample code.
|
||||
|
|
34
hash.c
34
hash.c
|
@ -2414,7 +2414,39 @@ env_update(env, hash)
|
|||
* Hashes have a <em>default value</em> that is returned when accessing
|
||||
* keys that do not exist in the hash. By default, that value is
|
||||
* <code>nil</code>.
|
||||
*
|
||||
*
|
||||
* <code>Hash</code> uses <code>key.eql?</code> to test keys for equality.
|
||||
* If you need to use instances of your own classes as keys in a <code>Hash</code>,
|
||||
* it is recommended that you define both the <code>eql?</code> and <code>hash</code>
|
||||
* methods. The <code>hash</code> method must have the property that
|
||||
* <code>a.eql?(b)</code> implies <code>a.hash == b.hash</code>.
|
||||
*
|
||||
* class MyClass
|
||||
* attr_reader :str
|
||||
* def initialize(str)
|
||||
* @str = str
|
||||
* end
|
||||
* def eql?(o)
|
||||
* o.is_a?(MyClass) && str == o.str
|
||||
* end
|
||||
* def hash
|
||||
* @str.hash
|
||||
* end
|
||||
* end
|
||||
*
|
||||
* a = MyClass.new("some string")
|
||||
* b = MyClass.new("some string")
|
||||
* a.eql? b #=> true
|
||||
*
|
||||
* h = {}
|
||||
*
|
||||
* h[a] = 1
|
||||
* h[a] #=> 1
|
||||
* h[b] #=> 1
|
||||
*
|
||||
* h[b] = 2
|
||||
* h[a] #=> 2
|
||||
* h[b] #=> 2
|
||||
*/
|
||||
|
||||
void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue