- # 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はすべてオブジェクト
スポンサーリンク