标签:
王家林亲授《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
本视频由王家林老师, 亲自讲解, 完全通过代码实战把您带人大数据的时代.
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) } }
Scala 深入浅出实战经典 第44讲: scala中view bounds代码实例
标签:
原文地址:http://www.cnblogs.com/czh-liyu/p/4687533.html