Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

標準ライブラリ「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}}>