我偶尔会发现自己想要一个非常简单的 Ordering[A] 用于一个还没有排序的类。通常是一个元组或一个类的一个字段的投影。以下课程似乎通常这样做
case object Ord {
case class DerivedOrdering[A,B](fn : B=>A)(implicit o : Ordering[A]) extends Ordering[B] {
def compare(a:B, b:B) = o.compare(fn(a), fn(b))
}
}
我还没有在 scala 库中看到它。它在某个地方吗?
用法
Ord.DerivedOrdering[Int, (Int, List[Int])]( _._1)
按整数对 (Int, List[Int]) 进行排序。