【发布时间】:2021-04-29 17:31:57
【问题描述】:
我正在尝试利用 scala 中的 Ordering[T] 来比较对象,但不适用于 2.11 版本的 scala,但适用于 2.12 版本。
需要了解在 2.11 与 2.12 scala 版本中解决的绑定机制。
case class Team(city:String, mascot:String)
//Create two choices to sort by, city and mascot
object MyPredef3 {
implicit val teamsSortedByCity: Ordering[Team] =
(x: Team, y: Team) => x.city compare y.city
implicit val teamsSortedByMascot: Ordering[Team] =
(x: Team, y: Team) => x.mascot compare y.mascot
}
object _6OrderingAList extends App {
//Create some sports teams
val teams = List(Team("Cincinnati", "Bengals"),
Team("Madrid", "Real Madrid"),
Team("Las Vegas", "Golden Knights"),
Team("Houston", "Astros"),
Team("Cleveland", "Cavaliers"),
Team("Arizona", "Diamondbacks"))
//import the implicit rule we want, in this case city
import MyPredef3.teamsSortedByCity
//min finds the minimum, since we are sorting
//by city, Arizona wins.
println(teams.min.city)
}
【问题讨论】:
-
问题是什么?
标签: scala comparator