Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Hash::<=()メソッドの使い方

<=メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

<=メソッドは、ハッシュが別のハッシュの「サブセット」であるかを確認するメソッドです。このメソッドは、呼び出し元となるレシーバのハッシュが、引数として渡された別のハッシュに完全に含まれているかどうかを判定するために使用されます。

ここでいう「サブセット」とは、レシーバのハッシュに存在するすべてのキーと、それに対応する値のペアが、引数のハッシュにもすべて同じ形で存在している状態を指します。もしレシーバのハッシュに存在するキーと値のペアが、引数のハッシュに一つでも見つからない場合や、キーは同じでも値が異なるペアが存在する場合には、サブセットとは見なされません。

この比較の結果、レシーバのハッシュが引数のハッシュのサブセットであると判断された場合に true を返します。そうでない場合は false を返します。例えば、h1 = {name: "Alice", age: 30}h2 = {name: "Alice", age: 30, city: "Tokyo"} があったとします。この場合、h1 <= h2true となります。なぜなら、h1 のすべての要素が h2 に含まれているからです。しかし、h2 <= h1false となります。これは、h2city: "Tokyo"h1 に存在しないためです。

このメソッドは、ある設定値のセットが別の設定値のセットの一部として有効であるかを検証する場合や、特定の条件の集合がより広い条件の集合に含まれているかを効率的に確認する際に役立ちます。

構文(syntax)

1hash_a = { key1: "value1", key2: "value2" }
2hash_b = { key1: "value1" }
3hash_c = { key1: "value1", key2: "value2", key3: "value3" }
4hash_d = { key1: "value1", key4: "value4" }
5
6# 構文: receiver_hash <= argument_hash
7# レシーバのハッシュが引数のハッシュの部分集合(または等しい)であるかを判定します。
8
9# hash_b は hash_a の部分集合であるため、true
10p hash_b <= hash_a
11
12# hash_a は hash_c の部分集合であるため、true
13p hash_a <= hash_c
14
15# hash_a は hash_b の部分集合ではないため、false
16p hash_a <= hash_b
17
18# hash_a は hash_d の部分集合ではないため、false
19p hash_a <= hash_d
20
21# 等しいハッシュの場合も true
22p ({ same: 1 } <= { same: 1 })

引数(parameters)

other

  • other: 比較対象となるHashオブジェクト

戻り値(return)

Boolean

指定されたハッシュが、比較対象のハッシュのすべてのキーと値を含む場合に true を返します。そうでない場合は false を返します。

関連コンテンツ

関連プログラミング言語