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

DT大数据梦工厂 第59,60,61讲

时间:2015-07-20 15:41:21      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典”视频、音频和PPT下载!第59讲:Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析
百度云:http://pan.baidu.com/s/1hqlKAzU
腾讯微云:http://url.cn/fgaGai
360云盘:http://yunpan.cn/cc6hEwddWetaY 访问密码 af7e
本节王老师讲了隐式转换,隐式转换的作用相当于门面设计模式,是如果一个类A里没有方法b(),但是A却想拥有这个方法b(),而这个方法b()在另一个类B中,就可以把A隐式转换成B。
class RichFile(file:File){//RichFile代表类B而File代表类A
def read=Source.fromFile(file.getPath()).mkString//File没有read方法,所以要转换。
}
object Context{//表示File可以隐式转换成RichFile
implicit def file2RichFile(file:File)=new RichFile(file)
}
object Hello_Implicit_Conversions{
def main(args: Array[String]){
import Context.file2RichFile//在main作用域下引入隐式转换的方法
println(new File("E:\\hello.txt").read)//如果没有上面一句编译器正常是会报错的,但是当编译器要完成编译的时候,会看整个作用域里是否有隐式转换,如果发现一个伴生对象里面有implicit这样的标识,就会看这个方法是否与目标方法匹配,发现有read,并且是把File转换成RichFile,则编译通过,这个就会调用RichFile里面的read方法,打印出hello.txt的内容。
}
}
王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典”视频、音频和PPT下载!第60讲:Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析
百度云:http://pan.baidu.com/s/1pJA8MzL
腾讯微云:http://url.cn/Vf6n5m
360云盘:http://yunpan.cn/cc6aUFUA7aKRq 访问密码 c540
本节王老师讲了隐式参数。这个参数就好比一个方法的缺省参数,如果传入2个参数,其中第二个为隐式参数,则这个方法当传入2个参数就按2个参数的方法实现,如果传入第一个参数,就把第二个设一个缺省的参数。这个缺省参数的值的传入是需要在调用这个方法的作用域里导入一个类的伴生对象,这个类的伴生对象就是用来寻找这个隐式参数的值的。
object Context_Implicits{
implicit val default:String="java"
}
object Param{
def print(content:String)(implicit language:String){
println(language+":"+content)
}
}
object Impl{
def main(args:Array[String]){
Param.print("hehe")("lala")//输出lala:hehe
import Context_Implicits._
Param.print("hehe")//输出java:hehe
}
}
王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典”视频、音频和PPT下载!第61讲:Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析
百度云:http://pan.baidu.com/s/1i3u6b0T
腾讯微云:http://url.cn/fMV74d
360云盘:http://yunpan.cn/ccMfpvL3dZNxt 访问密码 f992
本节王老师讲了一个隐式参数可以是一个方法,这个方法可以被当前方法调用,但是只是在内部。
def bigger(a:T,b:T)(implicit ordered:T =>Ordered[T])=if(ordered(a)>b)a else b//这里Ordered是一个类,有>,<等方法
print(bigger(4,3)) print(bigger("hehe","xixi")

DT大数据梦工厂 第59,60,61讲

标签:

原文地址:http://www.cnblogs.com/trgaaaaa/p/4661420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!