Generics 初学者:我怎么说;泛型A的任何超类;
我在开始时使用快速排序示例,并尝试将其调整为泛型类型Generics 初学者:我怎么说;泛型A的任何超类;,generics,scala,Generics,Scala,我在开始时使用快速排序示例,并尝试将其调整为泛型类型a,而不仅仅是Ints 到目前为止,我的工作是 def sort[A <: Ordered[A]](xs: Array[A]) 我被误导了,试图使用RichLong和RichBoolean作为测试类型,因为它们实际上不是反射性的有序的(它们扩展了有序的[Long]和有序的[Boolean]。类似的东西 def sort[B >: A, A <: Ordered[B]](xs: Array[B]) def sort[B>
a
,而不仅仅是Int
s
到目前为止,我的工作是
def sort[A <: Ordered[A]](xs: Array[A])
我被误导了,试图使用RichLong
和RichBoolean
作为测试类型,因为它们实际上不是反射性的有序的(它们扩展了有序的[Long]
和有序的[Boolean]
。类似的东西
def sort[B >: A, A <: Ordered[B]](xs: Array[B])
def sort[B>:A,A您所寻找的东西要么源自有序的
特征,要么可以被视为是这样。从许多类到有序的
存在大量隐式转换(称为视图),您也可以拥有自己的。然而,您最终会得到:
def sort[A也许你指的是“任何子类”而不是“任何超类”?至于答案的其余部分,请看下面。@fotNelton:不,我想要的是A:A,A数组[A]
,我实际上不会将aOrdered[any]
而不是Ordered[a]的类型a
。现在我明白你的意思了。不过我必须考虑一下。谢谢你的澄清。这适用于类X
,但不适用于类Y
或Z
,上面:错误:类型Y=>的发散隐式展开有序[Y]
是的,我再次阅读了你的问题,意识到我在最后(在最后编辑之前)忽略了实际问题。我的错。
def sort[B >: A, A <: Ordered[B]](xs: Array[B])