他们有什么区别?来自 Java 背景,在我看来,<=> 与 Java 的 equals() 相同,而 == 用于直接引用比较。这是正确的吗?
问问题
193 次
3 回答
14
==
仅测量两个对象是否相等,而<=>
如果第一个对象较小则返回 -1,如果相等则返回 0,如果第一个对象较大则返回 1。
如果你<=>
为你的类定义了一个方法,你会得到所有其他的比较操作符(==
, <
, >
, 等等)。
于 2011-07-24T20:28:21.647 回答
3
不能说我不是想推销自己,但我写了一篇关于 Ruby 中的比较和相等运算符的完整教程:“Ruby 基础 - Ruby 中的相等运算符”
在那里,您可以看到所有相等运算符之间的差异,包括 <=>、== 和 ===(以及实现它们的含义,包括哈希方法实现)。
于 2011-07-24T20:33:07.783 回答
2
==
就像 Java 的equals
,<=>
而compareTo
. ==
比较两个对象并返回它们是否相等。a <=> b
比较两个对象,如果更大则返回 1 a
,如果相同则返回 0,如果更大则-1
返回b
。
于 2011-07-24T20:31:10.413 回答