码迷,mamicode.com
首页 > 其他好文 > 详细

DT大数据梦工厂 第62讲

时间:2015-07-21 10:31:10      阅读:113      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!