
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
`Enumerable#uniq?` を実装 - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
`Enumerable#uniq?` を実装 - Qiita
raise if ary.dup.uniq! なんて書かれていたら、どんな動作をするのかすぐにはわからない。 動機 配列の... raise if ary.dup.uniq! なんて書かれていたら、どんな動作をするのかすぐにはわからない。 動機 配列の要素に重複があるかどうか判定したい。 Array#uniq! というメソッドがある レシーバーの配列から重複する要素を削除する 重複する要素を削除しなかった場合は nil を返す = 戻り値で「重複の有無」を判定できる これをそのまま条件式に使うのは気が引ける 破壊的メソッドのため、事前に配列を複製しないといけない また実際に重複を全排除するのは計算の無駄 「重複の有無」と「戻り値の真偽」の関係がややこしい ⇒ 真偽判定に特化したメソッド #uniq? を作ろう さらに言えば Array でなくてもいい ⇒ Enumerable に作ろう ちなみに破壊的でないメソッド #uniq は Enumerable などにもある 実装 #uniq 系は Object#eql? の