【Ruby3.x】Set::proper_superset?()メソッドの使い方
proper_superset?メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
proper_superset?メソッドは、あるSetオブジェクトが、引数として渡された別のSetオブジェクトの「真のスーパーセット」であるかどうかを判定するメソッドです。
Setとは、重複する要素を持たない順序のないコレクションを表すクラスです。このproper_superset?メソッドは、呼び出し元のSetインスタンスが、引数のSetに含まれるすべての要素を含んでいることに加えて、引数のSetよりも少なくとも一つの異なる要素を多く持っている場合にtrueを返します。
簡単に言えば、AというSetがBというSetの「真のスーパーセット」であるとは、AがBのすべての要素を含んでいるが、AとBは完全に同じではない、つまりAにはBにはない独自の要素が少なくとも一つ存在する状態を指します。
例えば、Set Aが {1, 2, 3} で、Set Bが {1, 2} の場合、AはBのすべての要素を含み、かつAには3というBにはない要素があるため、A.proper_superset?(B)はtrueを返します。
一方で、Set Aが {1, 2} でSet Bも {1, 2} のように両者が全く同じ要素を持つ場合、AはBの要素をすべて含みますが、両者は等しいため、A.proper_superset?(B)はfalseを返します。また、Set Aが {1, 2} でSet Bが {1, 3} のように、AがBのすべての要素を含んでいない場合もfalseを返します。
このメソッドは、集合間の包含関係を厳密に区別し、ある集合が別の集合を完全に包含しつつ、かつその集合自体がより多くの情報を持っているかを調べたい場合に活用できます。
構文(syntax)
1require 'set' 2 3superset_set = Set[1, 2, 3] 4subset_set = Set[1, 2] 5superset_set.proper_superset?(subset_set)
引数(parameters)
other
- other: Set: 比較対象となる集合
戻り値(return)
Boolean
レシーバー(メソッドを呼び出したSetオブジェクト)が、引数として渡された別のSetオブジェクトを厳密な上位集合(proper superset)である場合にtrueを返します。そうでない場合はfalseを返します。