scala语言 == eq equals的区别

scala | 2019-09-13 10:02:39

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.
登录后即可回复 登录 | 注册
    
关注编程学问公众号