Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

==とequalとeql

Javaっ子なんで頭が混乱する。。。

var1.equal?(var2)

はオブジェクトのIDを比較する。値の比較じゃない。

var1 == var2

は値の比較。Javaのequals()メソッドのイメージ。

var1.eql(var)

は値の比較だけど、数値だとオーバーライドされて小数点とかもみるみたい。10.eql?(10.0)はfalseってこと。たいていは==と同じ動きらしい。