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[[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

hash == other_hash

キーと値のペアの数が同じかどうか、およびキーと値のペアが各ハッシュの対応するペアと一致するかどうかに基づいて、2つのハッシュが等しいかどうかをテストします。

2

hash.[key]

キーを使用して、ハッシュから値を参照します。キーが見つからない場合は、デフォルト値を返します。

3

hash.[key] = value

valueで指定されたをkeyで指定されたキーに関連付けます

4

hash.clear

すべてのキーと値のペアをハッシュから削除します。

5

hash.default(key = nil)

hashのデフォルト値を返します。default=で設定されていない場合はnilを返します。([]は、キーがハッシュに存在しない場合、デフォルト値を返します。)

6

hash.default = obj

hashのデフォルト値を設定します。

7

hash.default_proc

ハッシュがブロックによって作成された場合、ブロックを返します。

8

hash.delete(key) [or]

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

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

9

hash.delete_if { |key,value| block }

ブロックがtrueと評価するすべてのペアのハッシュからキーと値のペアを削除します

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回ブロックを呼び出し、をパラメーターとして渡します。

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

hashからのキーを使用して新しい配列を作成します。

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 }

ブロックtrueと評価するすべてのペアに対して新しいハッシュを作成します

29

hash.reject! { |key, value| block }

拒否と同じですが、変更が加えられます。

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.values

hashのすべての値を含む新しい配列を返します。

42

hash.values_at(obj, ...)

指定された1つまたは複数のキーに関連付けられているハッシュからの値を含む新しい配列を返します。