gpt4 book ai didi

scala - 如何在scala中将Int参数化为Ordered

转载 作者:行者123 更新时间:2023-12-03 13:24:31 25 4
gpt4 key购买 nike

我有一个带有参数化类型的类,我想对其进行比较运算符。我认为我需要使用 Ordered 特征来实现这一点,但编译器不喜欢我使用它。所以说我有以下类(class):

class Test[T <: Ordered[T]] {

def someOp(t: T) if(t < 3) ...
...
}

但是,如果我尝试按如下方式使用此类:
val test = new Test[Int]()

编译器提示如下:

type arguments [Test[Int]] do not conform to class Test's type parameter bounds [T <: Ordered[T]]



有人可以向我解释我在这里做错了什么吗?

最佳答案

这是因为 Int不是 Ordered[Int] 的子类(见 here 为什么)。

但是,Int 存在隐式强制。至RichInt它是 Ordered[Int] 的子类,但不会针对下限触发。使用<% (查看边界)而不是 which will consider implicit coercions :

class Test[T <% Ordered[T]]

关于scala - 如何在scala中将Int参数化为Ordered,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19385235/

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