mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05: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
	
	 matz
						matz