[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:499

From: sheepman <sheepman@s...>
Date: Sun, 14 Oct 2007 21:09:36 +0900
Subject: [ruby-reference-manual:499] Hash#== などのエントリー

こんばんは sheepman です。

Hash#==, Hash#eql?, Hash#hash のエントリーを書いてみました。
よろしくお願いします。

--- ==(other)    -> bool
--- ===(other)   -> bool
#@since 1.9.0
--- eql?(other)  -> bool
#@end

自身と other が同じ数のキーを保持し、キーが eql? メソッドで比較して全て等しく、
値が == メソッドで比較して全て等しい場合に true を返します。
そうでない場合に false を返します。

@param other 自身と比較したい Hash オブジェクトを指定します。

  { 1 => :a } == { 1 => :a }               #=> true
  { 1 => :a } == { 1 => :a , 2 => :b }     #=> false
  { 1 => :a } == { 1.0 => :a }             #=> false  ( 1.eql?(1.0) は false なので)
  
  { :x => 1 } == { :x => 1.0 }             #=> true   ( 1 == 1.0 は true なので)

#@if(version < "1.9.0")
--- eql?(other)     -> bool
#@end
--- equal?(other)   -> bool

指定された other が self である場合のみ true を返します。
そうでない場合に false を返します。

@param other 自身と比較したい Hash オブジェクトを指定します。

#@if(version < "1.9.0")
 {}.eql?({})      #=> false 
 a = {}
 a.eql?(a)        #=> true
#@else
 {}.equal?({})      #=> false 
 a = {}
 a.equal?(a)        #=> true
#@end


--- hash    -> Integer

#@since 1.9.0
自身が保持するキーと値のハッシュ値を元にして算出した整数を返します。
自身が保持するキーや値が変化すればこのメソッドが返す値も変化します。

  a = {}
  a.hash     #=> 0
  a[1] = :x
  a.hash     #=> 329543

#@else
自身の [[m:Object#object_id]] を返します。これは [[c:Object]] クラスで定義されたデフォルトの動作です。
メソッド hash の返り値は自身が保持するキーや値に影響されません。

  a = {}
  a.hash    #=> 538688380
  a[1] = :a
  a.hash    #=> 538688380

#@end

-- 
sheepman / TAMURA Takashi
sheepman@s...

--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]