scala进阶17-隐式类/方法-增强类功能

import java.io.Fileimport scala.io.Source/** * 通过隐式转换增强类的功能 */class RichFile(val file: File) { def read = Source.fromFile(file.getPath).mkString}/** * 定义object,写明隐式转换(implicit) * 隐式转
摘要由CSDN通过智能技术生成
import java.io.File
import scala.io.Source

/**
  * 隐式方法
  */
class RichFile(val file: File) {
  def read = Source.fromFile(file.getPath).mkString
}

/**
  * 定义object,写明隐式转换(implicit)
  * 隐式转换函数一般这样写:前面是转换前的类,后面是增强类
  * 函数的参数是要增强的类的实例,函数体就是创建一个增强类
  */
object Context {
  implicit def file2RichFile(file: File) = new RichFile(file)
}
//import Context.file2RichFile //放这里也可以
object Hello_Implicit_Conversions {
  def main(args: Array[String]): Unit = {
    import Context.file2RichFile //引入要增强类中的隐式增强方法
    println(new File("/tmp/test.txt").read)
  }
}


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

/**
  * 隐式类
  */
object Context_Helper {
  //file增强
  implicit class FileEnhancer(file: File) {
    def read = Source.fromFile(file.getPath).mkString
  }

  //Int增强
  implicit class Op(x: Int) {
    def addX(second: Int) = x + second
  }
}

object Implicits_Class {
  def main(args: Array[String]): Unit = {
    import Context_Helper._ //导入隐式类
    //编译器就会在作用域内查找隐式类
    println(1.addX(2))
    println(1 addX 2)
    println(1.+(2))

    println(new File("/tmp/test.txt").read)
  }
}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值