鉴于两个case classes:
case class Foo(x: Int)
case class Bar(x: Int)
Run Code Online (Sandbox Code Playgroud)
用shapeless,我怎么能确定Foo,并Bar具有相同的"形",即Int :: HNil是HList?
A,B具有相同的形状,如果存在一个形状S,使得S是两者的通用表示A和B.这直接转换为以下功能:
trait SameShape[A, B]
object SameShape {
implicit def instance[A, B, S]
(implicit a: Generic.Aux[A, S], b: Generic.Aux[B, S]): SameShape[A, B] =
new SameShape[A, B] {}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |