2017-05-06 32 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