【Ruby3.x】Array::filter!()メソッドの使い方
filter!メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
filter!メソッドは、配列の要素を条件に基づいてフィルタリングし、元の配列自体を変更するメソッドです。このメソッドはArrayクラスに属しており、レシーバである配列の各要素に対して、与えられたブロックを実行します。ブロックが真と評価された要素は配列に残され、偽と評価された要素は配列から削除されます。
この「!」が末尾に付くメソッドは、破壊的な変更を行うことを示しており、呼び出し元の配列オブジェクトそのものが直接変更されます。そのため、メソッド呼び出し後には、元の配列にはブロックの条件を満たした要素のみが残ります。もし配列の内容が変更された場合は、変更後の配列自身(self)を戻り値として返します。しかし、フィルタリングの結果、配列に何の変更もなかった場合、例えば、すべての要素が条件を満たしたため何も削除されなかった場合や、すでに条件を満たさない要素が存在しなかった場合などは、nilを返します。
filter!メソッドは、select!メソッドの別名(エイリアス)であり、どちらを使用しても全く同じ動作をします。特定の条件に合致する要素だけを効率的に残し、それ以外の不要な要素を元の配列から直接取り除きたい場合に利用されます。
構文(syntax)
1array_variable.filter! { |element| condition_to_keep_element }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array
条件に合致した要素を削除した元の配列を返します。