2017-05-06 72 views
0

我有一个字符串表示形式,我想表示为HList。下面是它:包含序列的无形HList

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

让我感兴趣的类型是:

Int :: DateTime :: Seq[Double] 

我能够管理一个一对一的映射完成,但我怎么能转换我的上述表示到我想要的无形的类型?有什么建议么?

回答

2

我不确定你的问题在哪里。为什么你就不能这样做:

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 ::周一1月2日00:00:00 2017年:: ArrayBuffer(0.0,0.0,0.0,0.0,0.0 ,0.0,170.153)::抗扰度逻辑

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

+0

结束是的,我的确没有注意到的高抗扰度逻辑! – sparkr