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

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

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

作成日: 更新日:

基本的な使い方

select!メソッドは、レシーバーであるHashオブジェクトの要素を、指定された条件に基づいて選択し、そのHashオブジェクト自身を直接変更する(破壊的に更新する)メソッドです。このメソッドはブロックを受け取り、ハッシュの各キーと値のペアをブロックに渡します。ブロックがtrue(真)と評価される値を返したキーと値のペアはハッシュ内に残されますが、false(偽)と評価される値を返したペアはハッシュから削除されます。

この操作は、メソッドが呼び出された元のHashオブジェクトを直接書き換えるため、プログラムの実行結果に大きな影響を与える可能性があります。変更が行われた場合は、変更後のHashオブジェクト自身を返します。しかし、もしブロックの実行によってハッシュの要素に一つも変更がなかった場合(例えば、すべての要素が残る、あるいはすべての要素が削除されてハッシュが空になる、など元の状態と論理的に変わらない場合)、nilを返します。

元のハッシュを変更したくない場合は、破壊的ではないHash#selectメソッド(またはHash#filterメソッド)を使用してください。select!メソッドの利用時には、意図しないデータの消失や変更が発生しないよう、注意深くその動作を理解しておくことが重要です。

構文(syntax)

1hash = { key1: "value1", key2: "value2", key3: "value3" }
2hash.select! { |key, value| value.length > 5 }

引数(parameters)

引数なし

引数はありません

戻り値(return)

Hash or nil

select!メソッドは、ブロックで評価された結果が真である要素のみを残したレシーバーであるHashオブジェクト、または何も削除されなかった場合はnilを返します。

関連コンテンツ

関連プログラミング言語