aar*_*man 6 scala implicit case-class shapeless
案例类在scala中似乎没有隐式排序.
scala> case class A(i:Int)
defined class A
scala> implicitly[Ordering[A]]
<console>:10: error: No implicit Ordering defined for A.
implicitly[Ordering[A]]
Run Code Online (Sandbox Code Playgroud)
我想知道是否总是为所有案例类定义一个隐式排序,如果不是,至少有一种方法可以为相同成员类型的案例类/案例类的每个arity定义隐式排序.
案例类的排序可以使用无形,自动导出
import GenericOrdering._
case class Foo(i : Int, s : String)
implicitly[Ordering[Foo]]
val fs = List(
Foo(2, "b"),
Foo(2, "a"),
Foo(1, "c")
).sorted
assert(fs == List(
Foo(1, "c"),
Foo(2, "a"),
Foo(2, "b")
))
Run Code Online (Sandbox Code Playgroud)
请参阅此处以获取完整示例.完整的机制和扩展PartialOrdering将成为即将发布的无形2.1.0版本的一部分.
| 归档时间: |
|
| 查看次数: |
1325 次 |
| 最近记录: |