English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
ハッシュ(Hash)は「key」=>「value」といったキー値ペアの集合です。ハッシュは配列に似ていますが、インデックスは数字に限定されません。
ハッシュのインデックス(または「キー」と呼ばれる)はほぼどんなオブジェクトでもできます。
Hash は配列と似ていますが、非常に重要な違いがあります:Hash の要素には特定の順序がありません。順序が重要な場合には、配列を使用する必要があります。
配列と同様に、ハッシュを作成する方法はさまざまです。以下のようにして、 new クラスメソッドで空のハッシュを作成します:
months = Hash.new
また、以下のように使用することもできます: new デフォルト値を持つハッシュを作成します。デフォルト値を持たないハッシュは、 nil:
months = Hash.new("month") または months = Hash.new "month"
デフォルト値を持つハッシュの任意のキーにアクセスした場合、キーや値が存在しない場合、ハッシュへのアクセスはデフォルト値を返します:
#!/usr/bin/ruby months = Hash.new("month") puts "#{months[0]}" puts "#{months[72]}"
上記の例の実行結果は以下の通りです:
month month
#!/usr/bin/ruby H = Hash["a" => 100, "b" => 200] puts "#{H['a']}" puts "#{H['b']}"
上記の例の実行結果は以下の通りです:
100 200
あなたは、どんな Ruby オブジェクトでもキーや値として使用できます。例えば、以下の例のように配列を使用することもできます:
[1,"jan"] => "January"
Hash メソッドを呼び出すには、まず Hash オブジェクトをインスタンス化する必要があります。以下は、Hash オブジェクトを作成する方法の例です:
Hash[[key =>|, value]* ] or Hash.new [or] Hash.new(obj) [or] Hash.new { |hash, key| block }
これは、指定されたオブジェクトで埋め込まれた新しいハッシュを返します。現在、作成したオブジェクトを使用して、任意のメソッドを呼び出すことができます。例えば:
#!/usr/bin/ruby $, = ", " months = Hash.new("month") months = {"1" => "January", "2" => "February" keys = months.keys puts "#{keys}"
上記の例の実行結果は以下の通りです:
"["1", "2"]
以下は、一般的なハッシュメソッドです(仮定して): ハッシュ は Hash オブジェクトです):
番号 | メソッド & 説明 |
---|---|
1 | hash == other_hash ハッシュが同じキー値ペアの数を持っているかどうか、キー値ペアが一致しているかどうかを確認して、ハッシュが等しいかどうかを判断します。 |
2 | hash[key] キーを使用して、ハッシュから値を参照します。キーが見つからない場合は、デフォルト値が返されます。 |
3 | hash[key]=value を 値 キーと key キーに関連付けます。 |
4 | hash.clear 从哈希中移除所有的键值对。 |
5 | からすべてのキー値ペアをハッシュから削除します。 返します ハッシュ hash.default(key = nil) ハッシュ のデフォルト値が設定されていない場合、nilを返します。(キーが |
6 | に存在しない場合、[]はデフォルト値を返します。) hash.default = obj ハッシュ が |
7 | デフォルト値を設定します。 hash.default_proc ハッシュ ブロックを使用して作成されている場合、ブロックを返します。 |
8 | hash.delete(key) [または] array.delete(key) { |key| block } を使用して key から ハッシュ からキー値ペアを削除します。ブロックを使用して検索し、一致するキー値ペアが見つからない場合、ブロックの結果を返します。それを delete_if と比較します。 |
9 | hash.delete_if { |key,value| block } ブロックが true 各ブロック、 ハッシュ からキー値ペアを削除します。 |
10 | hash.each { |key,value| block } を巡回 ハッシュ各 key ブロックを一度呼び出し、keyを渡します-valueを二要素の配列として |
11 | hash.each_key { |key| block } を巡回 ハッシュ各 key ブロックを一度呼び出し、 key をパラメータとして |
12 | hash.each_key { |key_value_array| block } を巡回 ハッシュ各 key ブロックを一度呼び出し、 key と 値 をパラメータとして |
13 | hash.each_value { |value| block } を巡回 ハッシュ各 key ブロックを一度呼び出し、 値 をパラメータとして |
14 | hash.empty? ハッシュが空であるか確認します(キー値ペアを含まない場合)、返します true または false。 |
15 | hash.fetch(key [, default] ) [または] hash.fetch(key) { | key | block } 指定された key から ハッシュ 返値。もしその値が見つからない場合、 keyが発生し、他のパラメータが提供されていない場合、 IndexError 例外が発生します;デフォルト値が提供されていない場合、 defaultが指定されている場合、 defaultオプションのブロックが指定されている場合、ブロックの結果を返します。 |
16 | hash.has_key?(key) [または] hash.include?(key) [または] hash.key?(key) [または] hash.member?(key) 指定された key ハッシュに存在するか確認し、返します true または false。 |
17 | hash.has_value?(value) ハッシュが指定された値を含んでいるか確認します 値。 |
18 | hash.index(value) 指定された 値 ハッシュの key、もしその値が見つからない場合は返します nil。 |
19 | hash.indexes(keys) は、指定されたキーの値を構成する新しい配列を返します。見つからないキーはデフォルト値に挿入されます。このメソッドは廃止されました。select を使用してください。 |
20 | hash.indices(keys) は、指定されたキーの値を構成する新しい配列を返します。見つからないキーはデフォルト値に挿入されます。このメソッドは廃止されました。select を使用してください。 |
21 | hash.inspect は、ハッシュの印刷可能な文字列バージョンを返します。 |
22 | hash.invert 新しい ハッシュを逆転します。 ハッシュ の keys と valuesこれは、新しいハッシュでは、ハッシュ のキーが値になり、値がキーになるようにします。 |
23 | hash.keys 新しい配列を作成します。それは ハッシュ のキーにします。 |
24 | hash.length 整数形式で返します。 ハッシュ のサイズまたは長さにします。 |
25 | hash.merge(other_hash) [または] hash.merge(other_hash) { |key, oldval, newval| block } 新しいハッシュを返し、 ハッシュ と other_hash の内容を、ハッシュの中で other_hash 重複キーのキー値ペアを持つ。 |
26 | hash.merge!(other_hash) [または] hash.merge!(other_hash) { |key, oldval, newval| block } merge と同じですが、実際にはハッシュが変更されます。 |
27 | hash.rehash 各 key の現在の値に基づいて再構築します。 ハッシュ。値が変更された場合、このメソッドは再インデックスを ハッシュ。 |
28 | hash.reject { |key, value| block } delete_if に似ていますが、コピーのハッシュ上で作用します。hsh.dup.delete_if に等しいです。 |
29 | hash.reject! { |key, value| block } に等しいが、変更がない場合には nil を返します。 |
30 | hash.replace(other_hash) を ハッシュ の内容を other_hash の内容です。 |
31 | hash.select { |key, value| block } 新しい配列を返します。それは block 返します true の ハッシュ のキー値ペアで構成されています。 |
32 | hash.shift から ハッシュ から1つのキー値ペアを取り除き、そのキー値ペアを2要素の配列として返します。 |
33 | hash.size 整数形式で返します。 ハッシュ の size または length。 |
34 | hash.sort を ハッシュ キー値ペアを含む2次元配列に変換し、その後ソートします。 |
35 | hash.store(key, value) 保存 ハッシュ の1つのキー値ペア。 |
36 | hash.to_a ハッシュから2次元配列を作成します。各キー値ペアは配列に変換され、それらの配列は配列に格納されます。 |
37 | ハッシュ.to_hash 返します ハッシュ(self) |
38 | ハッシュ.to_s を ハッシュ 配列に変換し、その配列を文字列に変換します。 |
39 | ハッシュ.update(other_hash) [または] ハッシュ.update(other_hash) {|キー、旧値、新値| ブロック} 新しいハッシュを返し、 ハッシュ と other_hash の内容を、 ハッシュ 中の other_hash 重複キーのキー値ペアを持つ。 |
40 | ハッシュ.value?(値) チェック ハッシュ 指定された値を含むかどうか 値。 |
41 | ハッシュ.values 新しい配列を返し、 ハッシュ のすべての値を含む。 |
42 | ハッシュ.values_at(obj, ...) 新しい配列を返し、 ハッシュ 指定されたキーに関連付けられた値。 |