Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala泛型类型和子类型 抽象类狗[+T,-U,V]{ 狗吠声[A>:狗[T,狗[U,T,V],狗[V,V,V]],B=>B ):Dog[Dog[T,U,V],T=>U,B] }_Scala_Generics_Subtyping - Fatal编程技术网

Scala泛型类型和子类型 抽象类狗[+T,-U,V]{ 狗吠声[A>:狗[T,狗[U,T,V],狗[V,V,V]],B=>B ):Dog[Dog[T,U,V],T=>U,B] }

Scala泛型类型和子类型 抽象类狗[+T,-U,V]{ 狗吠声[A>:狗[T,狗[U,T,V],狗[V,V,V]],B=>B ):Dog[Dog[T,U,V],T=>U,B] },scala,generics,subtyping,Scala,Generics,Subtyping,这是我作业中的一个问题,它完全把我弄糊涂了。问题是编译器是否会报告错误。我理解协变和逆变是如何在单一类型中工作的 这是我对这个问题的看法,如果错了请纠正我 abstract class Dog[+T,-U,V] { def bark[A >: Dog[T,Dog[U,T,V],Dog[V,V,V]], B <: Dog[U,T,V]]( stranger: A, listener: (Dog[U,T,A]=>B)=>B ): Dog[Dog

这是我作业中的一个问题,它完全把我弄糊涂了。问题是编译器是否会报告错误。我理解协变和逆变是如何在单一类型中工作的

这是我对这个问题的看法,如果错了请纠正我

abstract class Dog[+T,-U,V] {
    def bark[A >: Dog[T,Dog[U,T,V],Dog[V,V,V]], B <: Dog[U,T,V]](
    stranger: A,
    listener: (Dog[U,T,A]=>B)=>B
    ): Dog[Dog[T,U,V], T=>U, B]
}
def bark[A>:Dog[T,Dog[U,T,V],Dog[V,V,V]],B:Dog[U,T,V],但对于程序的其他部分,我不知道发生了什么

def bark[A >: Dog[T,Dog[U,T,V],Dog[V,V,V]], B <: Dog[U,T,V]]