【发布时间】:2011-10-12 04:11:19
【问题描述】:
它们有什么区别?来自 Java 背景,在我看来, 与 Java 的 equals() 相同,而 == 用于直接引用比较。是这样吗?
【问题讨论】:
它们有什么区别?来自 Java 背景,在我看来, 与 Java 的 equals() 相同,而 == 用于直接引用比较。是这样吗?
【问题讨论】:
== 仅测量两个对象是否相等,而<=> 应在第一个对象较小时返回 -1,如果相等则返回 0,如果第一个对象较大则返回 1。
如果您为您的类定义了一个<=> 方法,您将获得所有其他比较运算符的定义(==、<、> 等等)。
【讨论】:
不能说我不是想推销自己,但我写了一篇关于 Ruby 中比较和相等运算符的完整教程:"Ruby Basics – Equality operators in Ruby"
在那里您可以看到所有相等运算符之间的差异,包括 、== 和 ===(以及实现它们的含义,包括哈希方法的实现)。
【讨论】:
== 类似于 Java 的 equals,而 <=> 类似于 compareTo。 == 比较两个对象并返回它们是否相等。 a <=> b 比较两个对象,如果 a 更大,则返回 1,如果它们相同,则返回 0,如果 b 更大,则返回 -1。
【讨论】: