[英]Concatenating HList Types in Case Class Definition
我有三个HList A
, B
和R
在案例类定义中,我想强制这三个HList之间的关系。
代码如下:
trait Base[A <: HList]
case class Concat[A <: HList, B <: HList, R <: HList](a: A, b: B) extends Base[R]
是否可以强制说R
是HLists A
和B
的串联? 还是有一种方法不需要我使用类型R
但仍然要求Base
的类型参数是A
和B
的串联?
您想要Prepend
:
case class Concat[A <: HList, B <: HList, R <: HList](a: A, b: B)(implicit p: Prepend.Aux[A, B, R]) extends Base[R]
以及一个无需指定R
的有用的伴随方法
def concat[A <: HList, B <: HList](a: A, b: B)(implicit p: Prepend[A, B]): Concat[A, B, p.Out] = Concat(a, b)(p)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.