scala-44:Scala中View Bounds代码实战及其在Spark中的应
来源:互联网 发布:公司网络监控 编辑:程序博客网 时间:2024/05/16 12:45
内容:
1、View Bounds的代码实战
2、View bounds在Spark中的广泛使用
class Pair_NotPerfect[T <% Comparable[T]](val first : T,val second : T){def bigger = if(first.compareTo(second) > 0)first else second }class Pair_Better[T <% Ordered[T]](val first : T,val second : T){def bigger = if(first > second)first else second }
视图界定:<%
试图界定:是指我们可以把具体的传入的T类型的实例转换成Comparable[T]类型,如果comparable[T]类型不是T类型的父类,使用<%的方式可以进行隐式转换。
val pair = new Pair_NotPerfect("Spark", "Hadoop") println(pair.bigger) val pairInt = new Pair_NotPerfect(3, 5) //Int -> RichInt println(pairInt.bigger)
例如:上述代码中的Pair传进了参数3,5使用Pair_NotPerfect[T<:Comparable[T]]就会报错,因为参数3和5不是Comparable[T]的子类型,这样就可以使用<%(视图界定)对其进行隐式转换(Int-> RichInt)。
Pair_NotPerfect[T<:Ordered[T]],Ordered是在Comparable方法的基础上提供了一定的关系操作符(Ordered也是trait泛型),所以可以在比较两个对象的大小的时候配合<%直接比对大小。
视图界定与隐式转换的过程:在应用类型T无法满足上界Comparable[T]的时候,使用<%做视图界定,将类型T隐式转换成Comparable[T]的子类型,例如整数类型Int会先变成RichInt类型,RichInt是以Comparable为类型上界的,所以用ComparaTo方法,即RichInt中有ComparaTo方法。
0 0
- scala-44:Scala中View Bounds代码实战及其在Spark中的应
- Scala深入浅出进阶经典 第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析
- 44.Scala中View Bounds代码实战及其在Spark中的应用源码解析
- 第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析学习笔记
- scala-43:Scala中类型变量Bounds代码实战及其在Spark中的应用源码解析
- scala-45:Scala中Context Bounds代码实战及其在Spark中的应用源码解析
- 43.Scala中类型变量Bounds代码实战及其在Spark中的应用源码解析
- 45.Scala中Context Bounds代码实战及其在Spark中的应用源码解析
- Scala深入浅出进阶经典 第45讲:Scala中Context Bounds代码实战及其在Spark中的应用源码解析
- 第43讲:Scala中类型变量Bounds代码实战及其在Spark中的应用源码解析学习笔记
- 第45讲:Scala中Context Bounds代码实战及其在Spark中的应用源码解析学习笔记
- Scala深入浅出进阶经典 第43讲:Scala中类型变量Bounds代码实战及其在Spark中的应用源码解析
- Scala深入浅出进阶经典 第49讲:Scala中Variance代码实战及其在Spark中的应用源码解析
- 49.Scala中Variance代码实战及其在Spark中的应用源码解析
- scala学习之:scala多重界定代码实战及其在Spark中的应用
- 第49讲:Scala中Variance代码实战及其在Spark中的应用源码解析学习笔记
- 51.Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用
- Scala深入浅出进阶经典 第51讲:Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用
- LeetCode 125:Valid Palindrome
- soot相关
- ora-04021:等待锁定对象时发生超时
- MYCNCART 自适应主题模板 MCCThemes-001 安装教程
- 子元素浮动,父元素高度为0解决方法
- scala-44:Scala中View Bounds代码实战及其在Spark中的应
- plsql 显式游标
- linux对dubbo的维护
- 【杭电】[1282]回文数猜想
- Mysql 利用group by 分组排序
- 整数解
- php 过滤特殊字符 如 ◆ )- : 、 、!! / 等
- 【leetcode题解】【再来,动态规划】【H】【21.8】Burst Balloons
- 手势