エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
RubyのArrayとHashは==で中身の比較を行う -- ぺけみさお
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
RubyのArrayとHashは==で中身の比較を行う -- ぺけみさお
一般的に、Rubyでオブジェクト同士を==で比較すると、オブジェクトIDの比較となる。 ==を再定義してある... 一般的に、Rubyでオブジェクト同士を==で比較すると、オブジェクトIDの比較となる。 ==を再定義してある場合は例外で、例えばStringは文字列の内容が比較される。 ではArrayやHashはどうなのか。 実はArrayやHashを==すると中身の比較が行われる。 よって以下のような比較が可能である。 単純なHashとArrayはもちろんのこと、複雑に構成されたオブジェクトもこのとおりだ。 p [1, 2, 3] == [1, 2, 3] #=> true p ({a:1, b:2, c:3} == {a:1, b:2, c:3}) #=> true p ([{a:1, b:2}, {array:[3, 4, 5]}] == [{a:1, b:2}, {array:[3, 4, 5]}]) #=> true 私は何となくオブジェクトIDの比較になりそうな気がして、無意識のうちにこのよう