scala类型参数的上界和下界
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类型参数的上界和下界相关推荐
- java 泛型的上界和下界
1.上界 Java 泛型的上界用于限制泛型类型参数必须是某个类型的子类型,通常使用 extends 关键字来表示.下面是一个示例代码,其中 T 的上界是 Comparable<T>,表示 ...
- Scala中协变(+)、逆变(-)、上界(:)、下界(:)简单介绍
对于一个带类型参数的类型,比如 List[T],如果对A及其子类型B,满足 List[B]也符合List[A]的子类型,那么就称为covariance(协变) , 如果 List[A]是 List[B ...
- 7.scala初识 柯里化、隐式参数、隐式转换、视图边界、上界、下界、协变、逆变
1.前言: 学过java我们都知道,java中的继承是对类的增强,java中的代理.装饰是对对象方法的增强.而在scala中,隐式转换和隐式参数是Scala中两个非常强大的功能,隐式的对类的方法进行增 ...
- 【Java 泛型】泛型(泛型类型、原始类型、泛型方法)、通配符(上界、下界、无限制、继承)
泛型(Generics) 泛型(Generics) 泛型类型(Generic Type) 多个类型参数 泛型类型的继承 原始类型(Raw Type) 泛型方法(Generic Method) 泛型方法 ...
- 上界与下界-- 视图界定--协变与逆变
1.上界与下界:Upper bound,lower bound 作用:规定泛型的取值范围 Int x ...
- 二分查找求上界和下界
二分查找求上界和下界 假设序列有序,其区间为[left,right)[left, right),设middlemiddle为区间中间值,现在需要获得首个出现元素vv的位置,如果不存在,返回一个位置,在 ...
- java泛型的上界和下界_java泛型中的上界(extend)和下界(super)
泛型中上界和下界的定义 上界 extend Fruit> 下界 super Apple> 上界和下界的特点 上界的list只能get,不能add(确切地说不能add出除null之外的对象, ...
- 通俗理解偏序关系中的八个特殊元(极大、极小、最大、最小元和上界、下界、上确界、下确界)
设<A,≼ >是偏序集合,B⊆A,b∈B. 注:下面所有的比较大小,都是在所研究的偏序关系上比较,不是表面上的数值比较 注:可以结合高等数学中的极值和最值理解 极大元:没有比元素b更&qu ...
- java数组的下界,Java泛型_上界extends_下界super
Java泛型_上界extends_下界super ? 通配符类型 extends T> 表示类型的上界,表示参数化类型的可能是T或是T的子类 super T> 表示类型下界(Java C ...
最新文章
- Moocryption
- 快速 Get 面试题中:线程池七个参数和工作原理问题,理解万岁
- CMD 命令行查看端口被哪个程序占用,并根据PID值,找到相应的程序,关闭掉对应服务或进程!...
- 前端笔记-webpack加载前端资源(图片,css等)
- 浅谈Opencl四大模型之Programming Model
- 浅谈javascript的运行机制
- 关于Javascript表单验证
- bt种子简介与magnet磁力介绍
- 模板--templates
- VUE3中使用粒子特效
- 从抢票软件到浏览器设计
- 中国的Palantir诞生,开启大数据关联挖掘的新时代
- 我用php构建了魔兽世界服务器,只为证明php是世界上最好的语言
- 在 Airbnb 使用机器学习预测房源的价格
- python和办公软件有什么区别_WPS与OFFICE办公软件有哪些区别
- Android 音乐播放器
- 编写程序读取一系列整数,找出它们的最大数,然后计算该数的出现次数,假定输入以0结束。
- 石川: 主流多因子模型巡礼
- 企业网站首页设计常见的6种布局方式
- KEIL封装lib库
热门文章
- python 调用js类_Python 调用 JS 常用的4种方式,带你学会如何解密
- react for循环_5个很棒的 React.js 库,值得你亲手试试!
- 在线协作编辑OT算法简介
- Python21天打卡Day13-生成器表达式
- 软件测试:职场上那些你不得不学会的事儿
- linux下 添加一个新账户tom,linux 账户管理命令 useradd、groupadd使用方法
- 最近项目参考的文章们
- 枪火游侠服务器停机维护,腾讯《枪火游侠》公布国服停运公告 11月30日正式关服...
- linux c 获取硬盘使用率,Linux通过c得到硬盘使用情况
- CUDA里面GRID, BLOCK 边界检测