【Ruby3.x】Set::collect!()メソッドの使い方
collect!メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
collect!メソッドは、Setオブジェクトの各要素に対して指定されたブロックを適用し、その結果で元のSetオブジェクト自体を破壊的に更新するメソッドです。このメソッドは、Setが保持する各要素を一つずつ取り出し、与えられたブロックの中で定義された変換処理を実行します。ブロックの戻り値が新たな要素として、元のSet内の対応する要素と置き換えられます。この処理がSet内の全ての要素に対して行われるため、メソッドの実行後には、元のSetオブジェクトの内容が完全に書き換わります。
そのため、元のSetオブジェクトを変更したくない場合には、このメソッドではなく、非破壊的なcollectメソッド(またはそのエイリアスであるmapメソッド)を利用して、変換後の新しいSetオブジェクトを生成する方法をご検討ください。
また、collect!メソッドにブロックが与えられなかった場合、このメソッドはEnumeratorオブジェクトを返します。これにより、要素の変換処理を遅延させたり、他の列挙メソッドと組み合わせて柔軟な処理を記述することが可能です。collect!メソッドはSetオブジェクトの要素を一括変換する強力な手段ですが、その破壊的な性質を十分に理解し、適切に利用することが重要です。
構文(syntax)
1require 'set' 2 3set_instance = Set[1, 2, 3] 4set_instance.collect! { |element| element * 2 }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Set
レシーバであるSetオブジェクト自身が、ブロックの評価結果で更新された状態で返されます。