【Ruby3.x】Array::uniq!()メソッドの使い方
uniq!メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
uniq!メソッドは、配列から重複する要素をすべて削除するメソッドです。このメソッドは、呼び出し元の配列自身を直接変更する「破壊的メソッド」であるため、元の配列の内容が更新される点に注意が必要です。
具体的には、配列内に同じ値を持つ要素が複数存在する場合、それらの重複する要素のうち最初に見つかった一つを残し、残りをすべて削除します。要素の等価性の判断には、通常、それぞれの要素のeql?メソッドとhash値が使用されます。
メソッドの実行後、配列に重複が削除される変更があった場合は、変更後の配列自身(self)を戻り値として返します。しかし、もし配列に重複する要素が元々存在せず、何も変更されなかった場合は、nilを戻り値として返します。この戻り値の違いによって、配列が実際に変更されたかどうかを判断することができます。
また、このメソッドにはオプションとしてブロックを渡すことも可能です。ブロックを渡した場合、配列の各要素に対してブロックを実行し、そのブロックの戻り値に基づいて重複の判定を行います。これにより、特定の基準に基づいて柔軟に重複要素を削除したい場合に非常に役立ちます。
構文(syntax)
1[1, 2, 2, 3, 1].uniq!
引数(parameters)
引数なし
引数はありません
戻り値(return)
self または nil
配列から重複する要素を削除し、変更があった場合はその配列自身を返します。重複する要素がなく、配列が変更されなかった場合はnilを返します。