相关疑难解决方法(0)

Scala:==默认为等于?

我正在阅读Scala编程.它说:

您可以==通过重写equals方法来重新定义新类型的行为,该方法始终从类继承Any.equals除非被覆盖,否则生成的继承是对象标识,就像Java中的情况一样.所以equals(和它一起==)默认情况下是相同的eq,但你可以通过覆盖equals你定义的类中的方法来改变它的行为.不可能==直接覆盖,因为它被定义为类中的最终方法Any.也就是说,Scala ==在课堂上将其视为如下定义Any:

final def == (that: Any): Boolean = 
  if (null eq this) (null eq that) else (this equals that)
Run Code Online (Sandbox Code Playgroud)

但这并不是我在scala 2.9.1中看到的内容,它看起来像:

  • == 似乎没有默认 equals
  • 我可以==直接覆盖(没有编译器的抱怨,override不需要).

所以在我看来似乎要么:

scala equality

7
推荐指数
1
解决办法
1450
查看次数

标签 统计

equality ×1

scala ×1