【问题标题】:Difference between <=> and == in Ruby?Ruby 中 <=> 和 == 的区别?
【发布时间】:2011-10-12 04:11:19
【问题描述】:

它们有什么区别?来自 Java 背景,在我看来, 与 Java 的 equals() 相同,而 == 用于直接引用比较。是这样吗?

【问题讨论】:

    标签: ruby spaceship-operator


    【解决方案1】:

    == 仅测量两个对象是否相等,而&lt;=&gt; 应在第一个对象较小时返回 -1,如果相等则返回 0,如果第一个对象较大则返回 1。

    如果您为您的类定义了一个&lt;=&gt; 方法,您将获得所有其他比较运算符的定义(==&lt;&gt; 等等)。

    【讨论】:

    • 啊,所以 就像 Java 的 compareTo() 方法?
    【解决方案2】:

    不能说我不是想推销自己,但我写了一篇关于 Ruby 中比较和相等运算符的完整教程:"Ruby Basics – Equality operators in Ruby"

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

    【讨论】:

      【解决方案3】:

      == 类似于 Java 的 equals,而 &lt;=&gt; 类似于 compareTo== 比较两个对象并返回它们是否相等。 a &lt;=&gt; b 比较两个对象,如果 a 更大,则返回 1,如果它们相同,则返回 0,如果 b 更大,则返回 -1

      【讨论】:

        猜你喜欢
        • 2012-05-25
        • 2011-04-29
        • 2013-03-27
        • 2011-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-23
        相关资源
        最近更新 更多