【发布时间】:2017-04-27 06:34:53
【问题描述】:
在@TravisBrown 的关于使用 shapeless 枚举 ADT 的启发性极强的 question 之后,我留下了以下代码 sn-p:
implicitly[EnumerableAdt[Foo]].values
我想将它封装在一个方法中,这样我就不必在每次调用后.values(这样对我来说似乎是一个更干净的 API)。 但我似乎无法正确理解。每当我尝试封装 implicitly[EnumerableAdt[Foo]] 时,都会出现隐式解析错误。
我尝试过的,对我来说最有意义的是,例如:
def imply[T](implicit ev: T):Set[T] = implicitly[EnumerableAdt[T]].values
当然没有ev 对我来说更没有意义。
我不是类型级编程方面的专家。
【问题讨论】: