Ruby – ハッシュ~RUBY入門〜RUBYTUTORIAL〜

スポンサーリンク

本当にわからないとこがあった場合一人では解決できません。
『teratail』とはエンジニア特化型のQ&Aサイトです。 すべてのエンジニアさんが抱えている悩みを共有して 解決するための質問サイトです
無料なのでまずは登録して使ってみてください。メールアドレスだけで登録可能です ----------------------------------------------------------------------------------------

Ruby – ハッシュ


ハッシュは、 “employee” => “salary”のようなキーと値のペアの集合です。これは配列に似ていますが、索引付けは整数型索引ではなく、任意のオブジェクト型の任意のキーを介して行われます。

キーまたは値のいずれかによってハッシュをトラバースする順序は任意である可能性があり、一般的には挿入順序にはありません。存在しないキーを持つハッシュにアクセスしようとすると、メソッドはnilを返します。

ハッシュを作成する


配列と同様に、ハッシュを作成するさまざまな方法があります。新しいクラスメソッドを使用して空のハッシュを作成することができます。

months = Hash.new

newを使ってデフォルト値のハッシュを作成することもできます。それ以外の場合はnilだけです

months = Hash.new( "month" )

or

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"]

以下はパブリックハッシュメソッドです(ハッシュが配列オブジェクトであると仮定します)。

Sr.No. メソッドと説明
1 hash == other_hash
2つのハッシュが等しいかどうか、それらが同じ数のキー/値ペアを持つかどうか、およびキー/値ペアが各ハッシュの対応するペアと一致するかどうかに基づいてテストします。
2 hash.[key]
キーを使用して、ハッシュから値を参照します。キーが見つからない場合は、デフォルト値を返します。
3 hash.[key] = value
valueで指定されたをkeyで指定されたキーに関連付けます
4 hash.clearすべてのキーと値のペアをハッシュから削除します。
5 hash.default(key = nil)デフォルトでは設定されていなければ、ハッシュのデフォルト値を返します。(キーがハッシュに存在しない場合、[]はデフォルト値を返します)。
6 hash.default = objハッシュのデフォルト値を設定します。
7 hash.default_procハッシュがブロックによって作成された場合はブロックを返します。
8 hash.delete(key) [or]

array.delete(key) { |key| block }

キーによるハッシュからキー値ペアを削除します。blockが使用されている場合、ペアが見つからない場合はブロックの結果を返します。delete_ifを比較してください。

9 hash.delete_if { |key,value| block }
ブロックが評価するすべてのペアのハッシュからキー値のペアを削除します
10 hash.each { |key,value| block }
ハッシュを反復し、キーごとにブロックを1回呼び出し、キー値を2要素の配列として渡します。
11 hash.each_key { |key| block }
ハッシュを反復し、各キーに対してブロックを1回呼び出し、キーをパラメータとして渡します。
12 hash.each_key { |key_value_array| block }
で反復ハッシュ、それぞれに対して一度ブロックを呼び出すキー渡して、キー値のパラメータとしてを。
13 hash.each_key { |value| block }
ハッシュを反復し、ブロックごとにキーを 1回呼び出し、valueをパラメータとして渡します。
14 hash.empty?ハッシュが空であるかどうかをテストし(キーと値のペアを含まない)、trueまたはfalseを返します
15 hash.fetch(key [, default] ) [or]

hash.fetch(key) { | key | block }

指定されたキーのハッシュ値を返します。場合は、キーを見つけることができず、他の引数がない、それが提起はIndexError例外を。デフォルトが与えられている場合は、それが返されます。オプションのブロックが指定されている場合は、その結果が返されます。

16 hash.has_key?(key) [or] hash.include?(key) [or]

hash.key?(key) [or] hash.member?(key)

指定されたキーがハッシュで存在するかどうかをテストし、trueまたはfalseを返します

17 hash.has_value?(value)ハッシュが指定された値を含むかどうかをテストします
18 hash.index(value)一致する値が見つからない場合は、指定された値のキーをハッシュ(nil)で返します。
19 hash.indexes(keys)指定されたキーの値で構成される新しい配列を返します。見つからないキーのデフォルト値を挿入します。このメソッドは非推奨です。selectを使用します。
20 hash.indices(keys)指定されたキーの値で構成される新しい配列を返します。見つからないキーのデフォルト値を挿入します。このメソッドは非推奨です。selectを使用します。
21 hash.inspectハッシュのかなりプリント文字列のバージョンを返します。
22 hash.invert新しい作成ハッシュ反転、キーハッシュは、つまり、新しいハッシュでは、キーのハッシュは値と値がキーになるとなります。
23 hash.keysハッシュからのキーで新しい配列を作成します。
24 hash.lengthハッシュのサイズまたは長さを整数として返します。
25 hash.merge(other_hash) [or]

hash.merge(other_hash) { |key, oldval, newval| block }

ハッシュother_hashの内容を含む新しいハッシュを返します。ハッシュのペアをother_hashのものと重複するキーで上書きします。

26 hash.merge!(other_hash) [or]

hash.merge!(other_hash) { |key, oldval, newval| block }

マージと同じですが、変更はその場で行われます。

27 hash.rehashキーの現在の値に基づいてハッシュを再構築します。挿入されてから値が変更された場合、このメソッドはハッシュを再索引付けします。
28 hash.reject { |key, value| block }
ブロック真と評価するすべてのペアに対して新しいハッシュを作成します。
29 hash.reject! { |key, value| block }
rejectと同じですが、変更はその場で行われます。
30 hash.replace(other_hash)hashの内容をother_hashの内容に置き換えます。
31 hash.select { |key, value| block }
キーと値のペアからなる新しい配列を返しハッシュ対象のブロックが返さ
32 hash.shiftハッシュからキーと値のペアを削除し、2要素の配列として返します。
33 hash.sizeハッシュのサイズまたは長さを整数として返します。
34 hash.sortハッシュをキーと値のペアの配列を含む2次元配列に変換し、配列としてソートします。
35 hash.store(key、value)キーと値のペアをハッシュ格納します。
36 hash.to_aハッシュから2次元配列を作成します。各キーと値のペアは配列に変換され、これらの配列はすべて、配列内に格納されます。
37 hash.to_hashハッシュ(自己)を返します。
38 hash.to_s変換ハッシュを配列に、その文字列にその配列を変換します。
39 hash.update(other_hash) [or]

hash.update(other_hash) {|key, oldval, newval| block}

内容を含む新しいハッシュを返しますハッシュother_hashを、でペアを上書きハッシュからのものとの重複キーでother_hashを

40 hash.value?(value)ハッシュが指定された値を含むかどうかをテストします
41 hash.valueshashのすべての値を含む新しい配列を返します。
42 hash.values_at(obj、…)指定されたキーまたはキーに関連付けられたhashの値を含む新しい配列を返します。

前のページ

次のページ

スポンサーリンク

プログラミングは独学からは挫折の可能性が高いです。まずは無料体験ができる
コードキャンプが本当におすすめ。無料体験でわからないところを聞きましょう。
転職補助つき。カリキュラム終了後に転職紹介をしてくれます。