他们有什么区别?来自Java背景,在我看来,它确实与Java的Equals()相同,而==是直接参考比较。这是正确的吗?

有帮助吗?

解决方案

== 仅当两个物体相等时才衡量 <=> 如果第一个对象较小,则应返回-1,如果它们相等,则应返回-1,如果第一个对象更大,则应返回-1。

如果您定义了 <=> 班级的方法,您还将获得所有其他比较操作员(==, <, >, , 等等)。

其他提示

不能说我不是要宣传自己,但是我写了一个关于Ruby中比较和平等运营商的完整教程: “红宝石基础知识 - 红宝石中的平等运营商”

在那里,您可以看到所有平等运算符之间的差异,包括<=>,==和===(以及实施它们的含义,包括哈希方法实施)。

== 就像爪哇的 equals, , 尽管 <=> 就好像 compareTo. == 比较这两个对象,并返回它们是否等效。 a <=> b 比较两个对象并返回1 a 更大,0如果它们是相同的,并且 -1 如果 b 更大。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top