instance method Enumerable#to_set

to_set(klass = Set, *args) -> Set[permalink][rdoc][edit] [added by set]
to_set(klass = Set, *args) {|o| ... } -> Set [added by set]

Enumerable オブジェクトの要素から、新しい集合オブジェクトを作ります。

引数 klass を与えた場合、Set クラスの代わりに、指定した集合クラスのインスタンスを作ります。この引数を指定することで、ユーザ定義の集合クラスのインスタンスを作ることができます (ここでいう集合クラスとは、Setとメソッド/クラスメソッドで互換性のあるクラスです。 Ruby 2.7 以前は SortedSet が定義されていました)。引数 args およびブロックは、集合オブジェクトを生成するための new メソッドに渡されます。

[PARAM] klass:
生成する集合クラスを指定します。
[PARAM] args:
集合クラスのオブジェクト初期化メソッドに渡す引数を指定します。
[PARAM] block:
集合クラスのオブジェクト初期化メソッドに渡すブロックを指定します。
[RETURN]
生成された集合オブジェクトを返します。

require 'set'
p [30, 10, 20].to_set
#=> #<Set: {30, 10, 20}>
MySet = Class.new(Set)
p [30, 10, 20].to_set(MySet)
#=> #<MySet: {10, 20, 30}>
p [30, 10, 20].to_set {|num| num / 10}
#=> #<Set: {3, 1, 2}>

[SEE_ALSO] Set.new