【Ruby3.x】Set::<=>()メソッドの使い方
<=>メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
<=>メソッドは、Setオブジェクト同士の集合の包含関係を比較し、その結果を示す整数またはnilを返すメソッドです。このメソッドは、呼び出し元のSetオブジェクトが引数として渡された別のSetオブジェクトに対して、部分集合、等しい集合、または上位集合のいずれの関係にあるかを確認するために使用されます。
比較の結果は以下のルールに基づいて決定されます。
まず、呼び出し元のSetが引数のSetのすべての要素を含み、かつ引数のSetとは完全に同一ではない真の上位集合である場合、このメソッドは正の整数である1を返します。
次に、両方のSetオブジェクトが全く同じ要素を持ち、完全に等しい場合には、0を返します。
一方で、呼び出し元のSetが引数のSetの真の部分集合である、つまり、呼び出し元のSetのすべての要素が引数のSetに含まれるが、引数のSetには呼び出し元にはない要素が存在する場合、負の整数である-1を返します。
最後に、これらのいずれの関係にも当てはまらない場合、例えば、互いに一部の要素は共通するものの、どちらか一方が他方の全体を包含しているわけではない「交差する」関係にある場合には、nilを返します。
この<=>メソッドは、要素の順序や個数ではなく、集合論における要素の包含関係を効率的に判定する際に役立ちます。
構文(syntax)
1require 'set' 2 3set_a = Set[1, 2] 4set_b = Set[1, 2, 3] 5set_a <=> set_b
引数(parameters)
set
- set: 比較対象となる別のSetオブジェクト
戻り値(return)
Integer または nil
Set オブジェクト同士を比較した結果を返します。順序関係が定義されている場合は Integer を、そうでない場合は nil を返します。