가끔 주문이없는 클래스에 대해 매우 간단한 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, 목록 [지능]) 순서에 순서를 제공합니다.
예쁜합니다. 나는 그 존재를 전혀 몰랐다. –