在案例类定义中串联HList类型

时间:2018-08-09 19:49:57

标签: scala shapeless hlist

我有三个HList v = {'A': '1','B':'2'} rdd = sc.parallelize(v.values()) df = spark.createDataFrame(rdd, list(v.keys())) df.show() AB。在案例类定义中,我想强制这三个HList之间的关系。

代码如下:

R

是否可以强制说trait Base[A <: HList] case class Concat[A <: HList, B <: HList, R <: HList](a: A, b: B) extends Base[R] 是HLists RA的串联?还是有一种方法我不需要类型B但仍然强制R的类型参数是BaseA的串联?

1 个答案:

答案 0 :(得分:1)

您要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)