gpt4 book ai didi

Scala协变类型错误

转载 作者:行者123 更新时间:2023-12-04 22:12:49 25 4
gpt4 key购买 nike

我试图定义一个类

abstract class Sequence[+A] {
def append (x: Sequence[A]): Sequence[A]
}

并进入了终端
<console>:8: error: covariant type A occurs in contravariant position in type Sequence[A] of value x
def append (x: Sequence[A]): Sequence[A]

为什么这个定义不正确,解决这个问题的最佳方法是什么?
我检查了这个 covariant type T occurs in contravariant position 但没有任何帮助。

最佳答案

这有效:

abstract class Sequence[+A]{
def append[B >: A](x: Sequence[B]): Sequence[B]
}

当您定义协变类型时,您不能将其用作输入参数(对于用于返回类型的逆变类型,您会遇到同样的问题)。解决方法是定义一个新类型(此处为 B),它是 A 的父类(super class)型。

关于Scala协变类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20626713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com