- # Ruby入門 > オブジェクト・変数・定数
Rubyのオブジェクトの同一性を調べる
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
Rubyのオブジェクト(クラスのインスタンス)は、ユニークなID(アイデンティティ、オブジェクトID)を持っています。
オブジェクトに対して、object_idメソッドを使うとオブジェクトIDを得られます。
スポンサーリンク
「equal?」は同じオブジェクトかどうか調べるメソッドで、「==」演算子は、オブジェクトの値が等しいかどうかを調べます。
true, またはfalseを返します。
オブジェクトの同一性と、オブジェクトの値が等しいか、を調べる
ary1 = [10, 20, 30, 40, 50] ary2 = [10, 20, 30, 40, 50] puts ary1.object_id puts ary2.object_id puts "--- 同じオブジェクトかどうか ---" if ary1.equal?(ary2) puts "ary1 と ary2 は同じブジェクト" else puts "ary1 と ary2 は違うオブジェクト" end puts "--- オブジェクトの値が同じかどうか ---" if ary1 == ary2 puts "ary1 と ary2 は同じ値" else puts "ary1 と ary2 は違う値" end
実行結果。
21627140 21627130 --- 同じオブジェクトかどうか --- ary1 と ary2 は違うオブジェクト --- オブジェクトの値が同じかどうか --- ary1 と ary2 は同じ値
よく見ると、ary1とary2のobject_idが異なっていることを確認できます。
スポンサーリンク
<< 前の記事 : Rubyはすべてオブジェクト
- - 関連記事 -
- Rubyはすべてオブジェクト
スポンサーリンク