kind=defined
names=hash
visibility=public

--- hash -> Fixnum

オブジェクトのハッシュ値を返します。[[c:Hash]] クラスでオブジェク
トを格納するのに用いられています。

メソッド hash は [[m:Object#eql?]] と組み合わせて Hash クラスで利用されます。その際

  A.eql?(B) ならば A.hash == B.hash

の関係を必ず満たしていなければいけません。eql? を再定義した時には必ずこちらも合わせ
て再定義してください。

デフォルトでは、[[m:Object#object_id]] と同じ値を返します。
ただし、[[c:Fixnum]], [[c:Symbol]], [[c:String]] だけは組込みのハッ
シュ関数が使用されます(これを変えることはできません)。

hash を再定義する場合は、一様に分布する任意の整数を返すようにします。

@return ハッシュ値を返します。Fixnumに収まらない場合は切り捨てられます。

  p self.hash #=> 21658870
  p 0.hash #=> 1
  p 0.0.hash #=> 0
  p nil.hash #=> 4
  
  p "ruby".hash #=> -241670986
  p "ruby".hash #=> -241670986
  p :ruby.hash #=> 103538
  p :ruby.hash #=> 103538

@see [[m:Object#eql?]],[[m:Object#__id__]]

