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