rubyとJavaの文字列比較の違い
昨日からruby勉強しています。
rubyの制御構文について見ていると、おっと思うことがありました。
==演算子と文字列比較について、ちょうどjavaのそれとは正反対では?
試してみました。
rubyで文字列同士が同じか比較しようと思ったら、==演算子を使います。
equal?メソッドでは、インスタンスが同一かどうかを比較してしまいます。
irb(main):001:0> a,b = 'abc','abc' => ["abc", "abc"] irb(main):002:0> a == b => true irb(main):003:0> a.equal?(b) => false
javaでは逆だなぁ。
public static void main(String[] args) { String a = "abc"; String b = new String("abc"); System.out.println(a.equals(b)); System.out.println(a == b); } (結果) true false
へー。
と思ったらまとめてる方いました笑
JavaのequalsメソッドとRubyのequal?メソッドについて | simultechnology.blog
http://simultechnology.blendmix.jp/blog/archives/926