包含序列的无形 HList

Shapeless HList Containing a Sequence

我有如下所示的字符串表示形式,我想将其表示为 HList。在这里:

123456,/02/2017,0,0,0,0,0,0,170.153

所以我感兴趣的类型是:

Int :: DateTime :: Seq[Double]

我能够管理完成的一对一映射,但是如何将上面的表示转换为我想要的无形类型?有什么建议吗?

我不知道你的问题在哪里。你为什么不能做这样的事情:

def hlistFromString(s: String): Int :: Date :: Seq[Double] :: HNil = {
  val ss = s.split(',')
  ss(0).toInt :: new Date(ss(1)) :: ss.toSeq.drop(2).map(_.toDouble) :: HNil
}

val s = "123456,01/02/2017,0,0,0,0,0,0,170.153"
println(hlistFromString(s))

输出是

123456 :: Mon Jan 02 00:00:00 2017 :: ArrayBuffer(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 170.153) :: HNil

我唯一的猜测是你错过了任何 HList 类型应该以 HNil

结尾