第64讲Scala中的隐式类分析

一、隐式类概念

所谓隐式类: 就是对类增加implicit 限定的类,其作用主要是对类的加强!

如:

  implicit class ImpInt(tmp:Int){
    def add(tmp2: Int) = tmp + tmp2
  }

class 前面的 implicit ,通过这个隐式类,就可以让Int型数据具有 add 方法。

二、隐式类型实例


import scala.io.Source
import java.io.File

/**
 * 隐式类
 * 其作用主要是对类的加强
 *
 * Created by zhiwang on 2015/7/22.
 */
object Implicit_Class {
  import Context_Helper._

  def main(args: Array[String]) {
    println( 1.add(2))  //在当前作用域中寻找 将Int(1) 作为变量的类同时具有add 的方法的类,如有,则执行
    println(new File("I:\\aa.txt").read()) //在当前作用域中寻找 将File 作为变量的类同时具有read的方法的类,如有,则执行
  }
}



object Context_Helper{

  implicit class ImpInt(tmp:Int){
    def add(tmp2: Int) = tmp + tmp2
  }

  implicit class FileEnhance(file:File){
    def read() = Source.fromFile(file.getPath).mkString
  }
}

三、执行过程分析

  1. 当 1.add(2) 时,scala 编译器不会立马报错,而检查当前作用域有没有 用implicit 修饰的,同时可以将Int作为参数的构造器,并且具有方法add的类,经过查找 发现 ImpInt 符合要求
  2. 利用隐式类 ImpInt 执行add 方法

参考资料

  1. 百度云盘 第63讲:Scala中隐式类代码实战详解
  2. 腾讯微云 第63讲:Scala中隐式类代码实战详解

另外
欢迎广大Spark爱好者学习交流.也欢迎广大学习爱好者加入
DT大数据梦工厂交流群:462923555
DT大数据微信公众账号:DT_Spark

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值