【Ruby3.x】Set::proper_subset?()メソッドの使い方
proper_subset?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
proper_subset?メソッドは、呼び出し元のSetオブジェクトが、引数として渡された別のSetオブジェクトまたはEnumerableオブジェクトの「真部分集合」であるかを判定するメソッドです。
真部分集合とは、あるSetに含まれるすべての要素が別のSetにも含まれていることに加えて、その2つのSetが互いに等しくない(つまり、要素の構成が完全に一致しない)状態を指します。具体的には、このメソッドは、自身(レシーバのSet)の全ての要素が引数に指定されたSetまたはEnumerableの要素に完全に含まれており、かつ自身と引数が全く同じ要素構成ではない場合にtrueを返します。もし、レシーバが引数の部分集合ではあるものの、両者が全く同じ要素を持っている場合はfalseとなります。これは、自身が引数の部分集合であるかのみを判定し、両者が同じ場合にもtrueを返すsubset?メソッドとの重要な違いです。
引数にはSetオブジェクトのほか、ArrayなどのEnumerableモジュールを含むオブジェクトも指定できます。この場合、引数のオブジェクトは比較のために内部的にSetに変換されてから処理が行われます。このメソッドは、Setオブジェクト間の厳密な包含関係を検査し、一方がもう一方に含まれつつも、完全に同一ではないことを確認したい場合に非常に有用です。条件が満たされない場合はfalseを返します。
構文(syntax)
1require 'set' 2 3subset_candidate = Set[1, 2] 4superset_candidate = Set[1, 2, 3] 5 6subset_candidate.proper_subset?(superset_candidate)
引数(parameters)
set
- set: 比較対象となる集合。この集合がレシーバ(メソッドを呼び出した集合)の真部分集合であるかを判定します。
戻り値(return)
Boolean
このメソッドは、レシーバーであるSetオブジェクトが、引数として渡されたSetオブジェクトの真部分集合である場合にtrueを返します。それ以外の場合はfalseを返します。