Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

標準ライブラリ「set」で集合を扱う(その3)

Enumerable#to_setを使うと、既存のEnumerableインスタンスをsetクラスに変換する事ができます。

[{name: :shuzo, power: 10},{name: :vivit, power: 20}].to_set
#=> #<Set: {{:name=>:shuzo, :power=>10}, {:name=>:vivit, :power=>20}}>

ブロックを渡して加工する事もできます。
フィルタする場合は先に処理してから渡した方がいいでしょう。

[{name: :shuzo, power: 10},{name: :vivit, power: 20}].to_set {|i| {name: i[:name].upcase, power: i[:power] * 2}}
#=> #<Set: {{:name=>:SHUZO, :power=>20}, {:name=>:VIVIT, :power=>40}}>