我有这门课
case class Person(name: String, age: Int)(implicit org: Ordering[Person])
尝试实例化时失败,因为我没有正确传递排序参数。
object Person {
implicit def ageOrdering(a: Person, b: Person): Int = a.age compare b.age
def main(args: Array[String]): Unit = {
val people = Array(Person("aa", 30), Person("bb", 32), Person("cc", 19))
Sorting.quickSort(people)
}
}
我该如何管理它? 感谢
答案 0 :(得分:1)
将Ordering
添加为Person
的成员似乎没有任何意义:为什么每个人都有自己的Ordering
?
此外,您的隐式定义返回Int
s,而非订单。
请改为尝试:
case class Person(name: String, age: Int)
object Person {
implicit object AgeOrdering extends Ordering[Person] {
def compare(a: Person, b: Person): Int = a.age compare b.age
}
def main(args: Array[String]): Unit = {
val people = Array(Person("aa", 30), Person("bb", 32), Person("cc", 19))
println(people.sorted.toList)
}
}
输出:
List(Person(cc,19), Person(aa,30), Person(bb,32))