Latest web development tutorials

Rubyのハッシュ(ハッシュ)

ハッシュ(ハッシュ)は、キーと値のペアのようなコレクションの "キー" => "値"に似ています。 ハッシュ配列に類似するが、それは、インデックス番号の使用に限定されるものではありません。

ハッシュインデックス(または「キー」)は、ほぼすべてのオブジェクトにすることができます。

ハッシュ配列が似ていますが、しかし非常に重要な違いがあります:ハッシュ要素は順不同です。 順序が重要な場合は、配列を使用する必要があります。

ハッシュを作成します

配列のように、さまざまな異なる方法はハッシュを作成します。 あなたは、新しいクラスのメソッドを介して空のハッシュを作成することができます。

months = Hash.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[[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"]

次のような共通のハッシュ方式(ハッシュハッシュオブジェクトを仮定して)、次のとおりです。

いいえ。 メソッドと説明
1 ハッシュ== other_hash
2は、キーと値のペアの数は2つのハッシュが等しいかどうかを決定するために、相互に一致しているため、同じハッシュ・キー値を持っているかどうかを確認してください。
2 ハッシュ。[キー]
ハッシュからキーの基準値を使用します。 キーが見つからない場合は、デフォルト値に戻ります。
3 ハッシュ。[キー] =値
値が指定されたキーに関連付けられたキーの値を与えられました。
4 hash.clear
ハッシュからすべてのキーを削除します。
5 hash.default(キー= nilの)
デフォルトで設定されていない場合は=、nilを返し、ハッシュのデフォルト値を返します。 (キーがハッシュに存在しない場合は、[]デフォルト値を返します。)
6 hash.default = OBJ
ハッシュのデフォルト値を設定します
7 hash.default_proc
ハッシュがブロックで作成した場合、ブロックが返されます。
8 hash.delete(キー)[または]
array.delete(キー){|キー|ブロック}
ペアによってハッシュキーから削除します。 ブロックはと一致するキーと値のペアが見つからなかった場合、ブロックの結果が返されます。 delete_ifと比較てみてください。
9 hash.delete_if {|キー、値|ブロック }
ブロックの各ブロックは、ハッシュからキーを削除するために、それは本当です
10 hash.each {|キー、値|ブロック }
キーブロックに1回呼び出さハッシュを、横断する、2つの要素の配列として、キーと値を渡します。
11 hash.each_key {|キー|ブロック}
ハッシュトラバースパラメータとしてキーを渡し、各キーブロックに1回呼び出さ。
12 hash.each_key {| key_value_array |ブロック}
キーブロックに1回呼び出さハッシュ、トラバース、引数としてキー値を渡します
13 hash.each_value {|値|ブロック}
キーブロックに1回呼び出さハッシュ、トラバース、パラメータとして渡されます
14 hash.empty?
ハッシュが空であるかどうかを確認してください(キーと値のペアが含まれていない)、およびtrueまたはfalseを返します
15 hash.fetch(キー[デフォルト]) [または]
hash.fetch(キー){|キー|ブロック}
与えられたキーを介して、ハッシュからの戻り値キーが見つからないと追加のパラメータを提供しなかった場合、IndexError例外をスローし、デフォルトを与えられた場合デフォルト値を返しますオプションのブロックは、ブロックの結果が返された場合。
16 hash.has_key?(キー)[または] hash.include?(キー)[または]
hash.key?(キー)[または] hash.member?(キー)
与えられたキーがハッシュに存在するかどうかをチェックし、trueまたはfalseを返します
17 hash.has_value?(値)
ハッシュが指定した値が含まれいるかどうか確認してください
18 hash.index(値)
ハッシュキーの指定したを返し一致しなかった場合はnil返します。
19 hash.indexes(キー)
これは、特定のキーコンポーネントの値によって、新しい配列を返します。 デフォルトの値を挿入するキーを見つけることができません。 この方法は、選択を使用してください廃止されました。
20 hash.indices(キー)
これは、特定のキーコンポーネントの値によって、新しい配列を返します。 デフォルトの値を挿入するキーを見つけることができません。 この方法は、選択を使用してください廃止されました。
21 hash.inspect
バックプリントバージョン文字列のハッシュ。
22 hash.invert
キーの新しいハッシュ、ハッシュ反転を作成します すなわち、新たなハッシュハッシュ値がキーとなり、値がキーとなるであろう。
23 hash.keys
ハッシュキーを使用して新しい配列を作成します。 / TD>
24 hash.length
これは、 整数ハッシュサイズや長さを返します。
25 hash.merge(other_hash)[または]
hash.merge(other_hash){|キー、 OLDVAL、たnewval |ブロック}
新しいハッシュを返し、 ハッシュは、コンテンツとother_hash重複するキーペアとother_hashとキーハッシュを書き換えるが含まれています。
26 hash.merge!(other_hash)[または]
hash.merge(other_hash)!{|キー 、OLDVAL、たnewval |ブロック}
そして、同じマージが、実際にハッシュが変更されました。
27 hash.rehash
キーの現在の値に基づいてハッシュ値を再確立しますあなたは値が変更された挿入した場合、プロセスはハッシュを再索引付けされます
28 hash.reject {|キー、値|ブロック }
などの新しいハッシュを作成するために、各キーブロック真のです
29 hash.reject!{|キー、値|ブロック}
そして、同じことを拒否したが、実際にはハッシュが変更されました。
30 hash.replace(other_hash)
コンテンツother_hashハッシュの内容を交換してください
31 hash.select {|キー、値|ブロック }
ブロックがペアで真のハッシュキーの値を返し、新しい配列を返します。
32 hash.shift
鍵のペアでハッシュから削除し、2つの要素の配列として返されるキー値を送信します。
33 hash.size
これは、大きさや長さの整数のハッシュを返します。
34 hash.sort
ハッシュはキーと値の配列を含む二次元配列に変換した後、ソートされます。
35 hash.store(キー、値)
キーと値のペアに格納されたハッシュ
36 hash.to_a
ハッシュからの2次元配列を作成します。 配列への各キーと値のペアは、すべてのこれらの配列は、配列に格納されています。
37 hash.to_hash
戻り値ハッシュ(自己)。
38 hash.to_s
ハッシュは、その配列が文字列に変換される配列に変換されます。
39 hash.update(other_hash)[または]
hash.update(other_hash){|キー、 OLDVAL、たnewval |ブロック}
新しいハッシュを返し、 ハッシュは、コンテンツとother_hash重複するキーペアとother_hashとキーハッシュを書き換えるが含まれています。
40 hash.value?(値)
ハッシュが指定した値が含まれいるかどうか確認してください
41 hash.values
これは、ハッシュのすべての値を含む新しい配列を返します
42 hash.values_at(OBJ、...)
これは、指定されたキーに関連付けられたハッシュ値を含む新しい配列を返します。