59.Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析
2017-10-03 22:49
274 查看
隐式转换的目的:增强类库功能
在spark或者play框架中,到处可见。
增强类库的方式:
在Java或者C#中,用工具类或者继承
在Scala中,用隐式转换或者隐式参数。
若当前作用域没有隐式转换,会找源目标类型的伴生对象。
比如在Spark中,SparkConetxt中若没有找到隐式转换,就会在RDD.scala中找,其中有很多方法,包括rddToPairFunction,rddToAsyncRDDActions,rddToSequenceFileRDDFunctions
隐式参数:
运用了隐式转换的技术,隐式参数一般发生在函数调用的时候,调用者会通过隐式参数告诉被调用的函数更多的关于类型和上下文的信息。
参考资料来源于大数据梦工厂 深入浅出scala 第59讲 由王家林老师讲解
在spark或者play框架中,到处可见。
增强类库的方式:
在Java或者C#中,用工具类或者继承
在Scala中,用隐式转换或者隐式参数。
import java.io.File import scala.io.Source class RichFile(val file : File){ //RichFile是增强的类。比如1 to 3 1是Int,但是隐式转换成RichInt,RichInt里才有to()方法 def read = Source.fromFile(file.getPath()).mkString } object Context{ implicit def file2RichFile(file : File) = new RichFile(file) //把已有类型转换成增强的类型。注意方法的命名file2RichFile 原来类型2转换后的类型 } object Hello_Implicit_Conversions_59 { def main(args: Array[String]): Unit = { import Context.file2RichFile println(new File("E:\\big.txt").read) //File中没有read方法,编译器在报错之前会最后一次尝试检查,看看在其作用域里有无隐式转换。在这里就是在main()里查看 } }
若当前作用域没有隐式转换,会找源目标类型的伴生对象。
比如在Spark中,SparkConetxt中若没有找到隐式转换,就会在RDD.scala中找,其中有很多方法,包括rddToPairFunction,rddToAsyncRDDActions,rddToSequenceFileRDDFunctions
隐式参数:
运用了隐式转换的技术,隐式参数一般发生在函数调用的时候,调用者会通过隐式参数告诉被调用的函数更多的关于类型和上下文的信息。
参考资料来源于大数据梦工厂 深入浅出scala 第59讲 由王家林老师讲解
相关文章推荐
- Scala深入浅出进阶经典 第59讲:Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析
- 第59讲:Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析学习笔记
- Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析之Scala学习笔记-49
- Scala深入浅出进阶经典 第60讲:Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析
- Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析之Scala学习笔记-51
- Scala深入浅出进阶经典 第61讲:Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析
- 第60讲:Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析学习笔记
- Scala 深入浅出实战经典 第60讲:Scala中隐式参数实战详解以及在Spark中的应用源码解析
- Scala 深入浅出实战经典 第61讲:Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析
- Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析之Scala学习笔记-50
- 60.Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析
- 61.Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析
- 第62讲:Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析学习笔记
- Scala深入浅出进阶经典 第62讲:Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析
- 62.Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析
- Scala 深入浅出实战经典 第65讲:Scala中隐式转换内幕揭秘、最佳实践及其在Spark中的应用源码解析
- Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析之Scala学习笔记-52
- 第66讲:Scala并发编程实战初体验及其在Spark源码中的应用解析
- 第66讲:Scala并发编程实战初体验及其在Spark源码中的应用解析
- 第66讲:Scala并发编程实战初体验及其在Spark源码中的应用解析