是否可以将HList作为函数参数传递?
这是我到目前为止:
import shapeless._ import poly._ object id extends (Id ~> Id) { def apply[T](f: shapeless.Id[T]): shapeless.Id[T] = f } object ListHandler { def mapOverHlist[ListType <: HList](list: ListType) = list.map(id) } val x = "foo" :: "bar" :: 0xb33f :: HNil ListHandler.mapOverHlist(x)
导致此错误:
could not find implicit value for parameter mapper: shapeless.ops.hlist.Mapper[ShapelessSpec.this.id.type,ListType]
senia.. 5
错误文本包含解决方案
import shapeless.ops.hlist.Mapper def mapOverHlist[L <: HList](list: L)(implicit m: Mapper[id.type, L]): m.Out = list.map(id)
方法map
接受隐式参数,您应该提供这样的参数(通过向方法的声明添加相同的参数).
错误文本包含解决方案
import shapeless.ops.hlist.Mapper def mapOverHlist[L <: HList](list: L)(implicit m: Mapper[id.type, L]): m.Out = list.map(id)
方法map
接受隐式参数,您应该提供这样的参数(通过向方法的声明添加相同的参数).