我正尝试创建一个隐式转换器,它将使用当前处于范围(eg. A => B)
中的隐式转换器,并且能够将任何类型的Traversable[A]
转换为Traversable[B]
。Scala中可遍历内容的隐式转换
到目前为止我:
implicit def convertLists[A, B](from: Traversable[A])(implicit conv: A => B): Traversable[B] = from.map(conv)
然而,这并不与工作:
val listOfB: List[B] = convertLists(List[A]())
如果我改变Traversable
到List
,然后正常工作,如:
implicit def convertLists[A, B](from: List[A])(implicit conv: A => B): List[B] = from.map(conv)
我是否需要添加其他内容以允许转换器接受0的任何子类?
如果您正确定义隐式转换,它将按预期工作。你看到了什么错误。 –
我认为问题在于你的方法返回'Traversable [B]',但'listOfB'的类型参数是'List [B]'。 –
@EndeNeu但'List'是'Traversable'的子类 –