为什么 Scala 的 RichInt 扩展 Comparable[Int] 而不是 Comparable[RichInt]?

Why does Scala's RichInt extends Comparable[Int] instead of Comparable[RichInt]?

为什么 Scala 的 RichInt 扩展 Comparable[Int] 而不是 Comparable[RichInt]

我是 Scala 的新手。在浏览 Scala 库代码时,我注意到 class RichInt extends ScalaNumberProxy[Int]ScalaNumberProxy 扩展了 OrderedProxyOrderedProxy 扩展了 OrderedOrdered 扩展了 java.lang.Comparable。 所以我的理解是 RichInt (间接)扩展了 java.lang.Comparable[Int].

我的问题是为什么它不扩展 java.lang.Comparable[RichInt]

我提出这个问题的原因是Java,我会这样写代码:

class A implements Comparable<A> {

    @Override

    public int compareTo(A other) {
        //implement the method.
    }
    ....
}

首先我们需要知道 RichInt 用于 提供辅助函数 Int 输入 implicit conversions defined in the Predef:

@inline implicit def intWrapper(x: Int) = new runtime.RichInt(x)

因此您可以像这样使用它:

2.doubleValue()
2.shortValue()
...

对于你的问题:为什么它不扩展 java.lang.Comparable[RichInt]

因为我们实际操作的是Int类型,而不是RichInt类型。喜欢:

2.compare(3)