如何按ID排序我的标签元素?
我不知道如何定义orderById函数...
case class Tag(id: Int, name: String, ttype: String)
val orderByID = Ordering[??].on[Tag](? => ? -> ?)
val mySet: SortedSet[Tag] = SortedSet()(orderByID) ;
答案 0 :(得分:7)
我认为你需要:
val orderByID = Ordering.by[Tag, Int](_.id)
val mySet: SortedSet[Tag] = SortedSet()(orderByID)
答案 1 :(得分:1)
Ordering.on
将Ordering[U]
转换为Ordering[T]
给定函数以从U
生成T
。在这种情况下,我们需要从Ordering[Int]
开始,然后提供Tag => Int
函数:
val orderByID = Ordering[Int].on[Tag](_.id)
但正如@Lee所说,Ordering.by
在这里是一种更为直接的方法。