如何解决无形HList返回类型
我试图在我的代码中加入一些无形的东西,并且陷入了一个尴尬的早期障碍。在下面的示例中,似乎将一个未定义的对象包含在HNil中:
trait HasValue[A,B] {
def get(a: A): B
def getAll[L <: HList,O <: HList](a: A)(implicit ga: GetAll[A,L]): O = ga.getAll(a,HNil)
}
trait GetAll[A,B] {
def getAll[L <: HList,O <: HList](a: A,l: L): O
}
implicit def getAllIfHasValue[A,B](implicit ev: HasValue[A,B]) = new GetAll[A,l: L): O = ev.get(a) :: l
}
并出现错误-type mismatch: Found B :: L,required O
。
我本以为,由于L
本身就是HList
,B :: L
本身应该就是HList
,因此一切都应该很好。但显然不是。
任何帮助表示赞赏!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。