什么是Scala中的==机制?

时间:2014-05-02 07:31:35

标签: scala

在比较两个字符串时,想了解scala ==的工作原理。

对象comaparision如何在scala中运行?

3 个答案:

答案 0 :(得分:2)

Scala中的

==等同于Java中的.equals()

答案 1 :(得分:1)

只需构建Gizmo's answer,而Java中的==或C#是检查引用相等性的运算符,在Scala中它是一种检查值相等的方法。当你想检查两个字符串(或一般的任何两个值)是否具有相同的值时,应该使用==

==Any超类型上声明为最终方法。在内部,它使用equals方法,也在Any中声明,但作为非最终方法。当您想要更改==对某个类型的行为时,可以通过覆盖equals来执行此操作:

override def equals(that: Any) : Boolean = {
  ...
}

// You probably would want to override this too
override def hashCode = ...

答案 2 :(得分:0)

在Scala中,一切都是对象,因为@avik提到==内部使用已经为String类定义的equals。如果您想为自己的班级正确使用==,请覆盖equals。如果要比较参考 - 请使用eq。来自docs:

表达式x == that相当于

if (x eq null) that eq null else x.equals(that)