加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何按照scala的顺序排列Int

发布时间:2020-12-16 09:12:50 所属栏目:安全 来源:网络整理
导读:我有一个类的参数化类型,我想做比较运算符.我赞成我需要使用Ordered trait来实现这一点,但编译器不喜欢我的使用.所以说我有以下类: class Test[T : Ordered[T]] { def someOp(t: T) if(t 3) ... ...} 但是,如果我尝试使用这个类如下: val test = new Test[
我有一个类的参数化类型,我想做比较运算符.我赞成我需要使用Ordered trait来实现这一点,但编译器不喜欢我的使用.所以说我有以下类:

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]的一个子类,但是它不会被触发下限.使用<%(view bounds)而不是which will consider implicit coercions:

class Test[T <% Ordered[T]]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读