Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > setライブラリ > Enumerableモジュール > to_set

instance method Enumerable#to_set

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

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

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

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

require 'set'
p [30, 10, 20].to_set
#=> #<Set: {30, 10, 20}>
p [30, 10, 20].to_set(SortedSet)
#=> #<SortedSet: {10, 20, 30}>
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