【Ruby3.x】Set::select!()メソッドの使い方
select!メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
select!メソッドは、Setオブジェクトの要素の中から、指定された条件に合致する要素だけを選び出し、それ以外の要素を元のSetオブジェクトから削除することで、Set自体を更新するメソッドです。メソッド名の末尾に付いている!(バン)は、このメソッドが呼び出されたSetオブジェクト自身を直接変更する、破壊的メソッドであることを示しています。
このメソッドは、ブロックを受け取ります。Setの各要素は順番にこのブロックに渡され、ブロックは渡された要素に対して条件を評価し、trueまたはfalseを返します。ブロックがtrueを返した要素はSetに残されますが、falseを返した要素はSetから削除されます。
もしSetの要素が実際に削除され、内容が変更された場合、select!メソッドは変更後のSetオブジェクト自身を返します。しかし、もしどの要素もブロックの条件を満たし、削除される要素が全くなく、Setに何ら変更がなかった場合はnilを返します。この戻り値によって、Setが変更されたかどうかを判断することができます。また、このメソッドにブロックを渡さずに呼び出した場合、要素を順番に処理するためのEnumeratorオブジェクトを返します。
select!メソッドは、Setオブジェクトの内容を特定の条件に基づいて効率的にフィルタリングし、その結果で元のSetを直接更新したい場合に非常に有用です。
構文(syntax)
1Set.new([1, 2, 3, 4, 5]).select! { |element| element.even? }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Setオブジェクト自身または nil
指定された条件に合致する要素のみを保持したSetオブジェクト自身、または条件に合致する要素が一つもなかった場合はnilを返します。