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]]