前 - 上 - 次 - 目次

# Hash

  ハッシュテーブル(連想配列とも呼ぶ)のクラス．ハッシュは任意の 種類のオブジェクトから任意の種類のオブジェクトへの関連づけを 行うことができます．ハッシュ生成は以下のようなハッシュ式で行 われます．

  >     {a=>b,...}

  ハッシュの格納に用いられるハッシュ値の計算には， `hash`メソッドが使わ れます． キーとして与えたオブジェクトの内容が変化し，メソッド `hash`の返す値が変わるとハッシュから値が 取り出せなくなりますから， `Array`, `Hash`などのインスタンス はキーに向きません．文字列をキーとして与えると，文字列をコピー し，コピーを更新不可に設定してキーとして使用します．キーとし て使われている文字列を更新しようとすると例外が発生します．

## スーパークラス:

  `Object`

## インクルードされているモジュール:

  `Enumerable`

## クラスメソッド:

  `Hash[key, value...]`

    新しいハッシュを生成します．引数は必ず偶数個指定しなければな りません(奇数番目がキー，偶数番目が値)．

  `new([ifnone])`

    空の新しいハッシュを生成します．ifnoneはキーに対 応する値が存在しない時のデフォルト値です．

## メソッド:

  `self [key]`

    keyに関連づけられた値を返します．該当するキーが登 録されていない時には，デフォルト値(設定されていない時には `nil`)を返します．

  `self [key]= value`

    keyに対してvalueを関連づけます． valueが`nil`の時，keyに対す る関連を取り除きます．つまり，ハッシュは `nil`を値にとることができません．

  `clear`

    ハッシュの中身を空にします．

  `default`

    ハッシュのデフォルト値を返します．

  `default=(value)`

    ハッシュのデフォルト値をvalueに設定します．対応す る値が存在しないキーで検索した時にはこの値を返します．

  `delete(key)`

    keyに対する関連を取り除きます．取り除かれた値を返 しますが，keyに対応する値が存在しない時には `nil`を返します．

    ブロックが与えられた時にはkeyにマッチするものがな かった時に評価されます．

  `delete_if {|key, value|...}`
  `reject!{|key, value|...}`

    keyとvalueを引数としてブロックを評価し た値が真である時，要素を削除します．

  `clone`
  `dup`

    レシーバと同じ内容を持つ新しいハッシュを返します．フリーズし たハッシュの`clone`は同様にフリーズされたハッシュ を返しますが，`dup`は内容の等しいフリーズされてい ないハッシュを返します．

  `each {|key, value|...}`
  `each_pair {|key, value|...}`

    keyとvalueを引数としてブロックを評価し ます．

  `each_key {|key|...}`

    keyを引数としてブロックを評価します．

  `each_value {|value|...}`

    valueを引数としてブロックを評価します．

  `empty?`

    ハッシュが空の時真を返します．

  `fetch(key[,default])`

    keyに関連づけられた値を返します．該当するキーが登 録されていない時にはdefaultを返します．ブロックが 与えられた時には該当するキーが登 録されていない時にそのブロッ クを評価した値を返します．

  `freeze`

    ハッシュの内容の変更を禁止します．

  `frozen?`

    ハッシュの内容の更新が禁止されている時真を返します．

  `has_key?(key)`
  `key?(key)`
  `include?(key)`

    ハッシュがkeyをキーとして持つ時真を返します．

  `has_value?(value)`
  `value?(value)`

    ハッシュがvalueを値として持つ時真を返します．

  `index(val)`

    valに対応するキーを返します． 対応する要素が存在しない時には `nil`を返します．

  `indexes(key_1,..., key_n)`
  `indices(key_1,..., key_n)`

    引数で指定されたキーを持つ値の配列を返します．

  `keys`

    全キーの配列を返します．

  `length`
  `size`

    ハッシュの要素の数を返します．

  `invert`

    値からキーへのハッシュを返します．

  `rehash`

    キーのハッシュ値を再計算します．キーになっているオブジェクトのハッシュ 値が変わってしまった場合，このメソッドを使ってハッシュ値を再計算しない 限り，そのキーに対応する値を取り出すことができなくなります．

  `replace(other)`

    ハッシュの内容をotherの内容で置き換えます．

  `shift`

    ハッシュから要素をひとつ取り除き， `[key,value]`という配列として返します．

  `store(key,value)`

    keyに対してvalueを関連づけます．

  `to_a`

    ハッシュを`[key,value]`なる2要素の配列の 配列に変換します．

  `values`

    ハッシュの全値の配列を返します．

  `update(other)`

    ハッシュの内容をマージします．重複するキーに対応する値は otherの内容で上書きされます．

前 - 上 - 次 - 目次

matz@netlab.co.jp