首页 > 其他 > 详细

DT大数据梦工厂 第62讲

时间:2015-07-21 10:30:46      阅读:116      评论:0      收藏:0      [点我收藏+]

王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典”视频、音频和PPT下载!第62讲:Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析
百度云:http://pan.baidu.com/s/1pJoooun
腾讯微云:http://url.cn/eKIr1t
360云盘:http://yunpan.cn/cckNtsfZfGNQX 访问密码 b3dd
本节王老师讲了上下文界定中的隐式参数。主要有3种方式:
1)class A[T:Ordering](val first:T,val second:T){//Ordering[T]
def bigger(implicit ordered:Ordering[T])= //传递一个隐式参数ordered用来比较类A的成员变量的大小。
if(ordered.compare(first,second)>0) first else second
}
2)class B[T:Ordering](val first:T,val second:T){//Ordering[T]
def bigger=if(implicitly[Ordering[T]].compare(first,second)>0) first else second//调用一个predef中的implicitly方法,这个方法可以传递自动生成一个以Ordering[T]为泛型的隐式参数,这样就可以调用Ordering中的compare方法。
}
3)class C[T:Ordering](val first:T,val second:T){//Ordering[T]
def bigger={
import Ordered._
if(first>second) first else second//因为first和second没有>这个方法,这样编译器就会去寻找泛型Ordering[T],查看有没有隐式转换,找到了Ordered,查看其中存在>方法,就不会报错。于是结果就是最大值。
}
}

DT大数据梦工厂 第62讲

原文:http://www.cnblogs.com/trgaaaaa/p/4663491.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!