【发布时间】:2020-04-20 22:09:50
【问题描述】:
我对 shapeless 非常陌生,并且正在努力为我的 HList 派生一个 Tupler。这是一个简化的例子:
object Builder {
import shapeless.ops.hlist.Tupler.hnilTupler
val empty: Builder[HNil] = new Builder[HNil](HNil)
}
class Builder[L <: HList: Tupler](list: L) {
def add[T](value: T): Builder[T :: L] = new Builder[T :: L](value :: list)
def tuple: Tupler[L]#Out = list.tupled
}
def add[T](value: T): Builder[T :: L] = new Builder[T :: L](value :: list) 行无法编译,因为没有隐含的Tupler[T :: L],我无法从前一个推导出下一个。
有什么想法吗?
【问题讨论】: