【Ruby3.x】Hash::filter()メソッドの使い方
filterメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
filterメソッドは、レシーバであるHashオブジェクトから、特定の条件を満たすキーと値のペアだけを抽出して新しいHashオブジェクトとして返すメソッドです。このメソッドは、引数としてブロックを受け取ります。ハッシュの各キーと値のペアは、それぞれブロックに渡されて評価されます。ブロックが真(true)を返したペアのみが、新しく生成されるハッシュに含まれます。元のハッシュオブジェクトは変更されず、常に新しいハッシュが返されるため、非破壊的な操作であることが特徴です。
例えば、数値のハッシュから特定の値よりも大きい要素のみを取り出したり、文字列のハッシュから特定のパターンに合致するキーや値を持つ要素を選び出したりする際に非常に有用です。これにより、元のデータ構造を損なうことなく、必要な情報だけを効率的に取り出すことができます。
このfilterメソッドは、Hash#selectメソッドのエイリアス(別名)としてRuby 2.6で導入されました。そのため、selectメソッドと全く同じ動作をします。異なるプログラミング言語間で共通の概念として「フィルタリング」という用語が広く使われていることを考慮し、コードの意図をより明確にする目的で提供されています。データの絞り込みや条件に合うサブセットの作成において、可読性の高いコードを書くために活用できます。
構文(syntax)
1hash.filter { |key, value| block }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Hash, Enumerator
指定された条件に合致する要素のみを抽出した新しいHash、または抽出処理を遅延させるEnumeratorを返します。