なんかいろいろ方法があるのでメモ。
equal?
同一のオブジェクトを参照してたらtrue。下記のコードと同じ。
a.object_id == b.object_id
==
==で下記のオブジェクトを比較すると、値が等しいかどうかをチェックする。
- String
- Array
- Hash
FixnumとFloatの比較では型変換を自動でしてくれる
1 == 1.0 #=> true
FixnumとStringはダメ
1 == "1" #=> false
eql?
型変換をしない厳格な==として使われることが多い。
1 == 1.0 #=> true 1.eql? 1.0 #=> false
===
case~whenで自動で使われる。===単体で使われることは少ない。かなり柔軟な比較をしてくれる。
(1..10) === 5 #=> true /d+/ === "123" #=> true String === "s" :s === "s" #=> true(Ruby1.9)
参考
プログラミング言語 Ruby
posted with amazlet at 09.05.19