题
他们有什么区别?来自Java背景,在我看来,它确实与Java的Equals()相同,而==是直接参考比较。这是正确的吗?
解决方案
==
仅当两个物体相等时才衡量 <=>
如果第一个对象较小,则应返回-1,如果它们相等,则应返回-1,如果第一个对象更大,则应返回-1。
如果您定义了 <=>
班级的方法,您还将获得所有其他比较操作员(==
, <
, >
, , 等等)。
其他提示
不能说我不是要宣传自己,但是我写了一个关于Ruby中比较和平等运营商的完整教程: “红宝石基础知识 - 红宝石中的平等运营商”
在那里,您可以看到所有平等运算符之间的差异,包括<=>,==和===(以及实施它们的含义,包括哈希方法实施)。
==
就像爪哇的 equals
, , 尽管 <=>
就好像 compareTo
. ==
比较这两个对象,并返回它们是否等效。 a <=> b
比较两个对象并返回1 a
更大,0如果它们是相同的,并且 -1
如果 b
更大。
不隶属于 StackOverflow