【Ruby3.x】Array::collect!()メソッドの使い方
collect!メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
collect!メソッドは、Arrayオブジェクトの各要素に対してブロックを実行し、その戻り値で元の配列の要素を置き換える(破壊的に変更する)メソッドです。
このメソッドは、配列の各要素を一つずつブロックに渡します。ブロック内で実行された処理の結果が、元の要素の代わりに新しい要素として配列に格納されます。この操作により、レシーバである配列自身が直接変更され、元の配列の内容が書き換えられます。元の配列を保持したい場合は、配列を破壊的に変更しない非破壊版のcollect(またはmap)メソッドを使用してください。
collect!メソッドはmap!メソッドと全く同じ動作をしますので、どちらを使用しても結果に違いはありません。もしブロックを渡さなかった場合、collect!メソッドはEnumeratorオブジェクトを返します。これにより、遅延評価やメソッドチェーンといった柔軟な処理が可能になります。配列の要素を直接変換したり、条件に基づいて更新したりする際に非常に役立つメソッドです。
構文(syntax)
1arr = [1, 2, 3] 2arr.collect! { |element| element * 2 }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array
collect! メソッドは、ブロックで評価された結果を要素とする新しい配列を返します。元の配列は変更されません。