我有一個字符串HList:一種類型的同質HList映射到不同類型的hetergenous HList
val strings = "The Lorax" :: "Dr. Suess" :: HNil
我特殊類型的另一HList:
case class Title(title: String, words: List[String])
case class Author(firstName: String, lastName: String)
val book = Title("The Hobbit", List("Hobbit")) :: Author("J.R.R.", "Tolkien") :: HNil
我要轉「字符串「,即我的字符串HList,轉換爲混合類型的HList,對應於」書籍「列表。如果我有一個方法從字符串 - >標題,並從字符串 - >作者的方法,我覺得這應該是非常直接的本質上得到「字符串」作爲「書」的實例 - 清單型使用不成形,但我似乎無法想出一個辦法。
編輯
我的使用情況,這涉及對開始作爲case類HLists工作。我使用無形,因爲我希望能夠以相同的方式轉換和修改不同案例類的數據,而不必對案例類的形狀進行硬編碼,我只想知道它們的值的類型。因此,理想的這種方法也將努力從字符串列表看起來像這樣的打算:
val strings2 = "Leonardo" :: "April O'Neil" :: "The Art of Pizza" :: HNil
val book2 = Author("Michaelangelo") :: Author("Donatello") :: Title("Slicing and Dicing"), List("Slicing", "Dicing") :: HList
所以我總是有它需要的格式的例子,但我不希望有將「作者」的數量和「書籍」數量硬編碼到翻譯功能列表中。我希望能夠說「a,a,b」應該看起來像「A,A,B」,這裏是從「a - > A」開始的方法,這裏是從「b - > B「,但我希望能夠使用相同的代碼從」b,a,b「到」B,A,B「,因爲我有兩個列表。
感謝您讓我回到這麼快特拉維斯!我對這個問題進行了編輯,因爲我擔心zipApply並不適合我的情況。我也試過問一些更具體和詳細的問題[這裏](http://stackoverflow.com/questions/38684994/using-shapeless-to-extract-data-from-case-classes-modify-it-and-recreate -c)以防萬一沒有簡單的方法來做我想做的事情,而我正從錯誤的角度來處理問題。反正,謝謝! –