変数同士が等しいかどうかRubyで調べる手段をご存知でしょうか。
数値同士、文字列同士なら言わずと知れた==
を使えばいいですね。ほかにもRubyにはeql?メソッドなどが存在します。
ですが、すべて同じ結果を返すわけではありません。何をもって等しいとするかの定義が少しずつ異なります。
"str" == "str" #=> true "str".equal?("str") #=> false
そこで今回は4つの「等しい」について書いていきます。
equal?メソッド
equal?
メソッドは比較する二つが全く同じオブジェクトであることをチェックします。
全く同じとは、参照しているオブジェクトが同じobject_idを持つかどうか、すなわち、ポインタが同じメモリ上のアドレスを指しているかどうかです。
続きを読む