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

scala – 参数扩展了一个类

发布时间:2020-12-16 18:40:09 所属栏目:安全 来源:网络整理
导读:我想做一个接受任何订购和打印更多的课程. (我只是在学习,所以我知道它有点无用) class PrinterOfGreater[T extends Ordered](val a:T,val b:T){println(a b)} 我知道它不能用scala中的这种风格写出来,但我不知道怎么写得恰到好处……有人知道吗? 为什么这
我想做一个接受任何订购和打印更多的课程. (我只是在学习,所以我知道它有点无用)

class PrinterOfGreater[T extends Ordered](val a:T,val b:T){println(a > b)}

我知道它不能用scala中的这种风格写出来,但我不知道怎么写得恰到好处……有人知道吗?

为什么这不编译?乳清字符串包装器是Ordered

class PrinterOfGreater[T <: Ordered[T]](a:T,b:T){println(a > b)} 
object A extends Application{new PrinterOfGreater("abc","abd")}

解决方法

关于你的第二个问题:String(在Scala中只是java.lang.String,至少在定位Java / JVM平台时)没有定义关系运算符>.但是,您可以通过替换指定所谓视图边界的<:with<%来轻松实现此目的,这意味着在A<%BA中是B的子类型或者在范围内存在隐式转换给出A时会产生B. 这适用于String,因为Scala的标准库提供了从String到RichString(在Scala 2.7中)或StringOps(在Scala 2.8中)的隐式转换,其中定义了关系运算符.

(编辑:李大同)

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

    推荐文章
      热点阅读