我想根据教程创建一个带有“add”方法的单向链表。
您能否解决错误?
Error:(6, 13) covariant type T occurs in contravariant position in type T of value element def add(element: T): MyLinkedList[T]
当我在泛型
[T] 上添加+
时出现了错误,因为没有+
方法,所以方法应用程序无法正常工作。
sealed trait MyLinkedList[+T] {
def add(element: T): MyLinkedList[T]
}
object MyLinkedList {
def apply[T](elements: T*): MyLinkedList[T] = {
if (elements.isEmpty) {
new Empty[Nothing]
} else {
Cons(elements.head, apply(elements.tail: _*))
}
}
final case class Cons[T](element: T, rest: MyLinkedList[T]) extends MyLinkedList[T] {
override def add(element: T): MyLinkedList[T] = ???
}
final case class Empty[T]() extends MyLinkedList[T] {
override def add(element: T): MyLinkedList[T] = ???
}
}