Scala 类型系统与特质:深入解析与应用
1. Scala 中的相等性比较
在 Scala 里,相等性比较有着独特的机制。在 Java 中,比较两个对象 x 和 y 时,使用 == 通常比较的是引用,而非对象内容。比如:
val x = new String("abc")
val y = new String("abc")
这里 x == y 结果为 true ,因为 Scala 中 == 会调用 equals 方法比较内容。但有时我们需要引用相等性,即两个引用指向同一对象。Scala 的 AnyRef 类为此定义了 eq 方法,它不能被重写,行为类似于 Java 中引用类型的 == 。其否定形式是 ne 方法。示例如下:
scala> val x = new String("abc")
x: java.lang.String = abc
scala> val y = new String("abc")
y: java.lang.String = abc
scala> x == y
res13: Boolean = true
scala> x eq y
res14: Bool
超级会员免费看
订阅专栏 解锁全文
8

被折叠的 条评论
为什么被折叠?



