Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Hash::filter!()メソッドの使い方

filter!メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

filter!メソッドは、Hashオブジェクトの内容を特定の条件に基づいてフィルタリングし、その結果で元のハッシュ自身を更新するメソッドです。メソッド名の末尾にある「!」が示す通り、このメソッドは呼び出し元のHashオブジェクトを直接変更する破壊的な操作を行います。具体的には、ハッシュの各キーと値のペアに対して与えられたブロック内の条件式が評価され、真を返したペアのみがハッシュに残され、それ以外のペアは削除されます。

元のハッシュを変更せずに、フィルタリングされた新しいハッシュを作成したい場合は、非破壊的メソッドであるHash#filter(またはHash#select)を使用してください。

例えば、my_hash.filter! { |key, value| value > 10 } と記述することで、値が10より大きいペアのみをmy_hashに残すことができます。ハッシュの内容が変更された場合は変更後のHashオブジェクト自身が返され、全く変更されなかった場合はnilが返されます。このメソッドは、特定の条件を満たすデータだけをハッシュに残したい場合に非常に有用です。

構文(syntax)

1data = { apple: 100, banana: 50, cherry: 120 }
2data.filter! { |key, value| value > 100 }

引数(parameters)

引数なし

引数はありません

戻り値(return)

Hash or nil

指定された条件に一致しない要素がなくなった場合のHashオブジェクト、または条件に一致する要素が1つもなかった場合にnilを返します。

関連コンテンツ

関連プログラミング言語