Scala 深入浅出实战经典 第44讲: scala中view bounds代码实例
2015-07-29 21:43
495 查看
王家林亲授《DT大数据梦工厂》大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:
百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2
技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群
DT大数据梦工厂① :462923555
DT大数据梦工厂②:437123764
DT大数据梦工厂③ :418110145
微信公众账号: DT_Spark
本视频由王家林老师, 亲自讲解, 完全通过代码实战把您带人大数据的时代.
百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2
技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群
DT大数据梦工厂① :462923555
DT大数据梦工厂②:437123764
DT大数据梦工厂③ :418110145
微信公众账号: DT_Spark
本视频由王家林老师, 亲自讲解, 完全通过代码实战把您带人大数据的时代.
package com.parllay.scala.type_parameterizitor /** * Created by richard on 15-7-28. */ //class Pair[T <: Comparable[T]] (val first: T, val second: T){ // def bigger = if(first.compareTo(second) > 0) first else second //} class Pair_Int[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 smaller = if(first < second) first else second } object View_Bound { def main(args: Array[String]) { /** * 以下代码运行没有任何问题, 因为Pair[String] 是Comparable[T]的子类型, 所以String有compareTo方法 */ val pair = new Pair_Int("Spark", "Hadoop"); println(pair.bigger) /** * 那么如果是下面这样的实例化,运行的时候是有问题的, 因为在Scala语言里 Int类型没有实现Comparable; * 那么该如何解决这个问题那; * 在scala里 RichInt实现了Comparable, 如果我们把int转换为RichInt类型就可以这样实例化了. * 在scala里 <% 就起这个作用, 需要修改Pair里的 <: 为<% 把T类型隐身转换为Comparable[Int] * * 另外解决这个问题的方法是使用Ordered特质, 上一节String实现了Comparable但是没有实现Ordered, 但是有了view bound就很容易实现; * * String可以被转换为RichString. 而RichString是Ordered[String] 的子类. */ val pair_int = new Pair_Int(3 ,45) println(pair_int.bigger) val pair_better = new Pair_Better(39 ,5) println(pair_better.smaller) } }
相关文章推荐
- C语言字符串截取函数strtok和strtok_r
- C++的引用类型的变量到底占不占用内存空间?
- C++的引用类型的变量到底占不占用内存空间?
- 初识JAVA
- LeetCode-Reverse Linked List
- PCI/PCIe接口卡Windows驱动程序(4)- 驱动程序代码(源文件)
- 利用QT中Qpainter画点,直线,弧线等简单图形
- C#中的WebBrowser控件的使用
- 《learning python the hard way》习题46 项目骨架搭建 问题小结(一)之软件包的安装
- Java多线程编程总结(学习博客)
- Action中如何通过@Autowired自动注入spring bean ?
- java ee中使用dbcp
- java语言基础总结
- 轨道机动算法的C++实现
- 现场手写编程strstr/strcpy
- Java(07—29)学习总结
- C语言——文件分类
- c++ primer exercises section 4.1
- c++ 封装 继承 多态
- 基于WDF的PCI/PCIe接口卡Windows驱动程序(4)- 驱动程序代码(源文件)