比较运算

  • ==和equals()方法都是进行内容比较
  • eq()方法比较对象引用地址 :::info ==规则:首先检测左侧是否为null,如果不为null,调用equals方法。由于equals是个方法,你得到的确切比较逻辑取决于左侧参数的类型。由于有自动的null检查,你不必亲自做这个检查 :::

    Scala的==跟Java不同

    :::info 在Java中,可以用==来比较基本类型和引用类型。对基本类型而言,Java的==比较的值的相等性,就跟Scala一样。但是对于引用类型,Java的==比较是引用相等性,意思是两个变量指向JVM的堆上的同一个对象。
    Scala也提供了用于比较引用相等性的机制,即名为eq的方法。不过eq和跟它对应的ne只对那些直接映射到Java对象的对象有效。 :::

    1. object test_stdin {
    2. def main(args: Array[String]): Unit = {
    3. val a = "hello"
    4. val b = new String("hello")
    5. println(a == b) //true
    6. println(a.equals(b)) //true
    7. println(a.eq(b)) //false
    8. }
    9. }