2019独角兽企业重金招聘Python工程师标准>>>


class Pair[T <: Comparable[T]](val first:T,val second:T) //类型T必须要是Comparable接口的子类(即T是Comparable的下界)
{def bigger = if(first.compareTo(second) > 0) first else second
}
class Pair_Lower_Bound[T](val first:T,val second:T)
{def replaceFirst[R >: T](newFirst:R) = new Pair_Lower_Bound(newFirst,second) //类型R是T类型的父类(也即R是T的上界)
}
object Type_Variables_BoundsTest {def main(args: Array[String]): Unit = {val pair = new Pair("aspark","hadoop")println(pair.bigger)  //会打印hadoop}
}

另外,如果某个类或函数写成如下形式:

def onefun[K,V,F <:Comparable[T]](........) = {......}

则表明onefun函数中有三个类型参数,并且每个参型参数的上界是Comparable[T]

转载于:https://my.oschina.net/u/2963604/blog/2247306

scala类型参数的上界和下界相关推荐

  1. java 泛型的上界和下界

    1.上界 Java 泛型的上界用于限制泛型类型参数必须是某个类型的子类型,通常使用 extends 关键字来表示.下面是一个示例代码,其中 T 的上界是 Comparable<T>,表示 ...

  2. Scala中协变(+)、逆变(-)、上界(:)、下界(:)简单介绍

    对于一个带类型参数的类型,比如 List[T],如果对A及其子类型B,满足 List[B]也符合List[A]的子类型,那么就称为covariance(协变) , 如果 List[A]是 List[B ...

  3. 7.scala初识 柯里化、隐式参数、隐式转换、视图边界、上界、下界、协变、逆变

    1.前言: 学过java我们都知道,java中的继承是对类的增强,java中的代理.装饰是对对象方法的增强.而在scala中,隐式转换和隐式参数是Scala中两个非常强大的功能,隐式的对类的方法进行增 ...

  4. 【Java 泛型】泛型(泛型类型、原始类型、泛型方法)、通配符(上界、下界、无限制、继承)

    泛型(Generics) 泛型(Generics) 泛型类型(Generic Type) 多个类型参数 泛型类型的继承 原始类型(Raw Type) 泛型方法(Generic Method) 泛型方法 ...

  5. 上界与下界-- 视图界定--协变与逆变

    1.上界与下界:Upper bound,lower bound                  作用:规定泛型的取值范围                  Int x                 ...

  6. 二分查找求上界和下界

    二分查找求上界和下界 假设序列有序,其区间为[left,right)[left, right),设middlemiddle为区间中间值,现在需要获得首个出现元素vv的位置,如果不存在,返回一个位置,在 ...

  7. java泛型的上界和下界_java泛型中的上界(extend)和下界(super)

    泛型中上界和下界的定义 上界 extend Fruit> 下界 super Apple> 上界和下界的特点 上界的list只能get,不能add(确切地说不能add出除null之外的对象, ...

  8. 通俗理解偏序关系中的八个特殊元(极大、极小、最大、最小元和上界、下界、上确界、下确界)

    设<A,≼ >是偏序集合,B⊆A,b∈B. 注:下面所有的比较大小,都是在所研究的偏序关系上比较,不是表面上的数值比较 注:可以结合高等数学中的极值和最值理解 极大元:没有比元素b更&qu ...

  9. java数组的下界,Java泛型_上界extends_下界super

    Java泛型_上界extends_下界super ? 通配符类型 extends T> 表示类型的上界,表示参数化类型的可能是T或是T的子类 super T> 表示类型下界(Java C ...

最新文章

  1. Moocryption
  2. 快速 Get 面试题中:线程池七个参数和工作原理问题,理解万岁
  3. CMD 命令行查看端口被哪个程序占用,并根据PID值,找到相应的程序,关闭掉对应服务或进程!...
  4. 前端笔记-webpack加载前端资源(图片,css等)
  5. 浅谈Opencl四大模型之Programming Model
  6. 浅谈javascript的运行机制
  7. 关于Javascript表单验证
  8. bt种子简介与magnet磁力介绍
  9. 模板--templates
  10. VUE3中使用粒子特效
  11. 从抢票软件到浏览器设计
  12. 中国的Palantir诞生,开启大数据关联挖掘的新时代
  13. 我用php构建了魔兽世界服务器,只为证明php是世界上最好的语言
  14. 在 Airbnb 使用机器学习预测房源的价格
  15. python和办公软件有什么区别_WPS与OFFICE办公软件有哪些区别
  16. Android 音乐播放器
  17. 编写程序读取一系列整数,找出它们的最大数,然后计算该数的出现次数,假定输入以0结束。
  18. 石川: 主流多因子模型巡礼
  19. 企业网站首页设计常见的6种布局方式
  20. KEIL封装lib库

热门文章

  1. python 调用js类_Python 调用 JS 常用的4种方式,带你学会如何解密
  2. react for循环_5个很棒的 React.js 库,值得你亲手试试!
  3. 在线协作编辑OT算法简介
  4. Python21天打卡Day13-生成器表达式
  5. 软件测试:职场上那些你不得不学会的事儿
  6. linux下 添加一个新账户tom,linux 账户管理命令 useradd、groupadd使用方法
  7. 最近项目参考的文章们
  8. 枪火游侠服务器停机维护,腾讯《枪火游侠》公布国服停运公告 11月30日正式关服...
  9. linux c 获取硬盘使用率,Linux通过c得到硬盘使用情况
  10. CUDA里面GRID, BLOCK 边界检测