65.Scala中隐式转换内幕操作规则揭秘、最佳实践及其在Spark中的应用源码解析

隐式砖混的内幕操作规则:
1.必须有关键字implicit,可以修饰在类/对象/函数/参数或者变量前
2.作用域规则。隐式转换在整个作用域中必须是单一的标志符。相当于id,是唯一的。
3.隐式转换内容必须在不存在其他插入转换的前提下才能进行正常的隐式转换。


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

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

class File_Implicits(path : String) extends File(path)

//类可以访问伴生对象里的内容
object File_Implicits{
  implicit def file2RichFile(file : File) = new RicherFile(file)
}

object Implicits_Internal_65 {
  def main(args: Array[String]): Unit = {
    //直接使用,不需要导入
    println(new File_Implicits("E:\\big.txt").read)
  }
}

输出:

nihao
my name is spark



参考资料来源于大数据梦工厂 深入浅出scala 第65讲 由王家林老师讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值