【Ruby3.x】Hash::keep_if()メソッドの使い方
keep_ifメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
keep_ifメソッドは、Hashオブジェクト内のキーと値のペアに対して、与えられた条件を満たすものだけを残し、それ以外のペアを削除するメソッドです。
このメソッドは、Hashの各キーと値のペアを引数として受け取るブロックを必要とします。ブロックが評価され、trueを返したペアはHash内に残されますが、falseを返したペアはHashから削除されます。例えば、特定のキーを持つペアだけを残したい場合や、特定の値が条件を満たすペアだけを残したい場合などに使用できます。
keep_ifは破壊的なメソッドであり、呼び出し元のHashオブジェクト自体が変更されます。元のHashオブジェクトは、条件を満たすペアのみが残された新しい状態に更新されます。メソッドの戻り値は、変更後のHashオブジェクト自身です。
元のHashオブジェクトを変更せずに、条件を満たす新しいHashを作成したい場合は、非破壊的なselectメソッドやfilterメソッドを使用してください。keep_ifは、既存のHashを特定の条件に基づいて効率的にフィルタリングし、その場で内容を更新したい場合に非常に便利です。
構文(syntax)
1my_hash = { apple: 1, banana: 2, cherry: 3 } 2my_hash.keep_if { |key, value| value.even? }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Hash
条件を満たした要素のみを含む新しいハッシュを返します。