1
在Scala中,使一個類可比我們延伸Ordered[T]
在類如何定購提供隱式排序[T],在JVM類型擦除 - 斯卡拉
case class A(i: Int) extends Ordered[A] {
def compare(that: A): Int = this.i compare that.i
}
和Iteratable[A]
的方法sorted
需要的隱式參數鍵入scala.math.Ordering[A]
排序Iterable[A]
Seq[A](A(2),A(1)).sorted // Seq(A(1),A(2)) Ordering will provide Ordering[A]
Seq[A](A(2),A(1)).sorted(Ordering[A]) // Seq(A(1),A(2))
和Ordering
同伴對象提供的隱式Ordering[T]
爲Iterable[A]
我的問題:如何Ordering
對象可以提供Ordering[T]
到sorted
。
由於[T]
將JVM被刪除,它是不可能知道
Ordering[A]
和Ordering[Int]
爲什麼它可以工作之間的區別?