scala中判断是否相等和java中是有区别的
1.java 中 == 和 equals:
1.1 java中 ==
java中的 ==可以比较基本类型的值,也可以比较对象的引用(比较内存地址)
1.2java中的 equals
java中的 equals用来比较对象的值是否一样
总结:java中比较对象一般用equals,得考虑判断是否为null
2.scala中的== eq 和 equals:
2.1 equals方法是检查值是否相等
2.2 eq方法检查的是引用是否相等
2.3 scala 中的 ==
当比较值中有null时就调用eq,否则就比较值调用equals
总结:scala中比较都用==,不用考虑null
参考来自官方文档解释:
final def ==(arg0: Any): Boolean The expression x == that is equivalent to if (x eq null) that eq null else x.equals(that). final def eq(arg0: AnyRef): Boolean Tests whether the argument (that) is a reference to the receiver object (this). def equals(arg0: Any): Boolean The equality method for reference types.