Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中的==机制是什么?_Scala - Fatal编程技术网

Scala中的==机制是什么?

Scala中的==机制是什么?,scala,Scala,我只是想了解一下scala在比较两个字符串时是如何工作的 对象隔离在scala中是如何工作的?==在scala中相当于。equals()在Java中相当于。equals()在Java中相当于。equals()==在scala中相当于。==在scala中相当于。equals()在Java中,只是在此基础上,Java或C中的=是检查引用相等的运算符,而在Scala中,它是检查值相等的方法= =在Any超类型上声明为最终方法。在内部,它使用equals方法,也在Any中声明,但作为非最终方法。当您想要

我只是想了解一下scala在比较两个字符串时是如何工作的


对象隔离在scala中是如何工作的?

==在scala中相当于
。equals()
在Java中相当于
。equals()
在Java中相当于
。equals()

==在scala中相当于
。==在scala中相当于
。equals()
在Java中,只是在此基础上,Java或C中的
=
是检查引用相等的运算符,而在Scala中,它是检查值相等的方法<当您想要检查两个字符串(或通常任何两个值)是否具有相同的值时,应该使用code>=

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

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

// You probably would want to override this too
override def hashCode = ...
在此基础上,Java或C#中的
=
是检查引用相等的运算符,而在Scala中,它是检查值相等的方法<当您想要检查两个字符串(或通常任何两个值)是否具有相同的值时,应该使用code>=

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

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

// You probably would want to override this too
override def hashCode = ...
在此基础上,Java或C#中的
=
是检查引用相等的运算符,而在Scala中,它是检查值相等的方法<当您想要检查两个字符串(或通常任何两个值)是否具有相同的值时,应该使用code>=

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

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

// You probably would want to override this too
override def hashCode = ...
在此基础上,Java或C#中的
=
是检查引用相等的运算符,而在Scala中,它是检查值相等的方法<当您想要检查两个字符串(或通常任何两个值)是否具有相同的值时,应该使用code>=

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

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

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

在Scala中,一切都是一个对象,正如@avik提到的
=
在内部使用
equals
,这已经为String类定义了。如果您想为自己的类正确使用
=
,请重写
等于。如果要比较参考,请使用
eq
。从文档:

表达式
x==等于

如果(x eq null)该eq null

else x.equals(即)

在Scala中,一切都是一个对象,正如@avik提到的
=
内部使用的
equals
已经为String类定义。如果您想为自己的类正确使用
=
,请重写
等于。如果要比较参考,请使用
eq
。从文档:

表达式
x==等于

如果(x eq null)该eq null

else x.equals(即)

在Scala中,一切都是一个对象,正如@avik提到的
=
内部使用的
equals
已经为String类定义。如果您想为自己的类正确使用
=
,请重写
等于。如果要比较参考,请使用
eq
。从文档:

表达式
x==等于

如果(x eq null)该eq null

else x.equals(即)

在Scala中,一切都是一个对象,正如@avik提到的
=
内部使用的
equals
已经为String类定义。如果您想为自己的类正确使用
=
,请重写
等于。如果要比较参考,请使用
eq
。从文档:

表达式
x==等于

如果(x eq null)该eq null

else x.equals(即)

在Scala中,使用==运算符比较两个字符串。您想知道什么?在Scala中,您使用==运算符比较两个字符串。您想知道什么?在Scala中,您使用==运算符比较两个字符串。您想知道什么?在Scala中,您使用==运算符比较两个字符串。关于这一点,您想知道什么?除了与
==
等价的基元类型。不,它不等同于
.equals()
。它意味着在基本类型和引用类型上的值相等,它相当于
对象。等于(a,b)
null
处理!)@soulcheck No,因为在某些情况下,基本类型上的
===
.equals()
在装箱类型上不同(例如
NaN==NaN
-0=+0
)在这些情况下,您可以看到Scala
==
的行为类似于primitive
=
。除了primitive类型,当它等效于
=
。不,它不等效于
.equals()
。它意味着在基本类型和引用类型上的值相等,它相当于
对象。等于(a,b)
null
处理!)@soulcheck No,因为在某些情况下,基本类型上的
===
.equals()
在装箱类型上不同(例如
NaN==NaN