【Ruby3.x】Set::difference()メソッドの使い方
differenceメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
differenceメソッドは、Setオブジェクト間の差集合を計算して、新しいSetオブジェクトを生成するメソッドです。これは、呼び出し元のSetオブジェクトに含まれる要素のうち、引数として渡されたSetオブジェクト、または配列や範囲などのEnumerableオブジェクトに含まれない要素だけを集めて、新しいSetとして返す操作を指します。
具体的には、ある集合から別の集合の要素を除外した結果を得たい場合に利用します。例えば、Set Aが{1, 2, 3}で、Set Bが{2, 3, 4}の場合、A.difference(B)を実行すると、Set AからSet Bに含まれる要素(この場合は2と3)が取り除かれ、結果として{1}という新しいSetが生成されます。引数にはSetオブジェクトだけでなく、配列や範囲などのEnumerableオブジェクトも指定可能です。その場合、指定されたEnumerableオブジェクトの要素が一時的にSetオブジェクトに変換されてから差集合の計算が行われます。
このメソッドは、呼び出し元のSetオブジェクト自体を変更することはありません。常に新しいSetオブジェクトを返しますので、元のデータを安全に保ちながら集合演算を行うことができます。複数のデータ集合から特定の要素群を除外したい場合や、二つの集合間のユニークな差異を見つけたい場合に非常に有効な機能です。
構文(syntax)
1require 'set' 2 3set1 = Set[1, 2, 3] 4set2 = Set[3, 4, 5] 5result_set = set1.difference(set2)
引数(parameters)
*enums
- enums: 差を計算したい他のEnumerableオブジェクト
戻り値(return)
Set
Setクラスのdifferenceメソッドは、レシーバとなるSetオブジェクトから、引数として渡されたSetオブジェクトに含まれる要素を除いた新しいSetオブジェクトを返します。