【Ruby3.x】Set::superset?()メソッドの使い方
superset?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
superset?メソッドは、レシーバとなるSetオブジェクトが、引数として与えられた別のSetオブジェクトのすべての要素を含んでいるかどうかを判定するメソッドです。つまり、レシーバのSetが引数のSetの「上位集合」であるかどうかを確認します。
このメソッドは、引数に比較対象となる別のSetオブジェクトを受け取ります。もし、レシーバのSetが、引数として渡されたSetのすべての要素を網羅している場合、trueを返します。例えば、Set[1, 2, 3]がsuperset?(Set[1, 2])を実行するとtrueが返されます。これは、Set[1, 2, 3]がSet[1, 2]の要素である1と2を両方とも含んでいるためです。逆に、Set[1, 2]がsuperset?(Set[1, 2, 3])を実行すると、Set[1, 2]は要素3を含んでいないため、falseを返します。
このメソッドは、集合の包含関係を効率的にチェックする際に非常に役立ちます。特に、あるSetが別のSetの要素をすべて持っていることを確認したい場合に利用されます。Setクラスは集合演算を扱うためのクラスであり、superset?メソッドはその集合演算の一つとして、集合間の包含関係を明確に判断するための機能を提供しています。
構文(syntax)
1require 'set' 2 3set_a = Set[1, 2, 3] 4set_b = Set[1, 2] 5set_c = Set[4, 5] 6 7puts set_a.superset?(set_b) 8# 出力: true (set_aはset_bの全ての要素を含んでいるため) 9 10puts set_b.superset?(set_a) 11# 出力: false (set_bはset_aの全ての要素を含んでいないため) 12 13puts set_a.superset?(set_c) 14# 出力: false (set_aはset_cの全ての要素を含んでいないため)
引数(parameters)
set
- set: 自身が指定された集合のスーパーセット(上位集合)であるかどうかを判定するための集合
戻り値(return)
true or false
指定されたSetオブジェクトが、引数として渡された別のSetオブジェクトのすべての要素を含んでいる場合にtrueを返します。そうでない場合はfalseを返します。