【发布时间】:2018-12-11 04:44:19
【问题描述】:
我正在尝试做类似下面的事情,即通过模式匹配头部和尾部来递归处理HList,每次将头部传递给通用函数。
import shapeless._
trait MyTrait {
def myFunc[T](x: String => T): Boolean
def iter(myHList: HList, acc: List[Boolean]): List[Boolean] = {
myHList match {
case HNil => acc
case head :: tail => myFunc(head) :: iter(tail, acc)
}
}
}
问题是我从匹配中得到的头部是Any 类型,而不是我放入HList 的类型。我希望将 head 作为参数的函数具有正确的类型参数 T。
这可能吗?也许除了Shapeless之外还有其他方法?
【问题讨论】:
标签: scala generics generic-programming shapeless