您的位置:首页 > 其它

scala学习之:隐式转换与隐式参数

2015-08-27 23:05 537 查看
隐式转换

隐式转换与隐式参数都是增强类库功能的一种方式,Java中使用工具类、继承的方式来实现。
隐式转换主要体现在:使用A的对象实例,调用B的方法。
我们不需要修改原来的类,就可以把新的方法附着在原来的类上。这样就增强了类本身的功能。
隐式转换一般发生在函数调用的时候,

隐式转换的代码示例:

class RichFile(val file : File){

def read = Source.fromFile(file.getPath).mkString

}

object Context{

implicit def file2RichFile(file:File) = new RichFile(file)

}

object HideType {

def main(args: Array[String]){

import Context.file2RichFile

println(new File("f:\\test.js").read)

}

}
隐式参数
object Context_Implicits{
implicit val default : String = "java"

}

object Param{

def print(context : String)(implicit language : String){

println(language +" : " + context)

}

}

object HideArg {

def main(args: Array[String]): Unit = {

Param.print("Spark")("Scala")

import Context_Implicits._

Param.print("Hadoop")

}

}

以上内容是从王家林老师DT大数据课程第59、60讲的学习笔记。

DT大数据微信公众账号:DT_Spark

王家林老师QQ:1740415547

王家林老师微信号:18610086859

百度云盘地址:http://pan.baidu.com/s/1pJA8MzL

优酷播放地址:http://v.youku.com/v_show/id_XMTI4ODY0OTkyNA==.html

51cto的播放地址:http://edu.51cto.com/lesson/id-68943.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: