【发布时间】:2017-03-14 15:36:21
【问题描述】:
我正在学习无形并参考here 的教程。其中说,
Generic 是一种转换案例类别和产品类型的简单方法(例如 tuples) 到 HList,反之亦然:
import shapeless.Generic
case class UserWithAge(name: String, age: Int)
val gen = Generic[UserWithAge]
val u = UserWithAge("Julien", 30)
val h = gen.to(u)
现在如果我打印h,我将得到Julien :: 30 :: HNil。但是,我无法从h 读取每个元素,例如h.head,h.tail 将不起作用,h 中没有任何可用的方法。在这里,h 是 gen.Repr 的类型,我也找不到将其转换为 HList 的方法。那么,如何从h 读取每个元素?
【问题讨论】:
-
您提供的代码可能无法传达您遇到的问题。因为在这段代码中
h.head和h.tail工作得很好。 -
我尝试使用 intellij ide 而不是 repl,如果我执行 h.head,则会显示“无法解析符号头”。但是,它遵守得很好。可能是ide的问题。感谢您指出。 :)
-
哦,是的,那可能只是 IDE 在隐式和宏方面存在问题。