package com.liao.day05
import java.io.{BufferedReader, File, FileReader}
import scala.io.Source
class RichFile(file:File){
def count():Int={
val fileReader=new FileReader(file)
val bufferedReader = new BufferedReader(fileReader)
var line_num=0
var line=bufferedReader.readLine()
while (line!=null){
line_num+=1
line=bufferedReader.readLine()
}
bufferedReader.close()
fileReader.close()
line_num
}
}
object ScalaImplicit {
def say(implicit content:String):Unit={println(content)}
def add(a:Int)(implicit b:Int):Int={a+b}
def addPlus(a:Int)(implicit b:Int,c:Int):Int={a+b+c}
implicit def double2Int(d:Double):Int={
println("调用了double2Int方法")
d.toInt
}
implicit val doubleTwoInt=(d:Double)=>{
println("调用了doubleTwoInt函数")
d.toInt
}
implicit class RichFileRead(file: File){
def read()={
Source.fromFile(file).mkString
}
}
def main(args: Array[String]): Unit = {
implicit val msg1="morning"
say(msg1)
say
implicit val numB:Int=23
println(add(5))
println(addPlus(5))
println("------------------隐式转换类型---------------------")
var age:Int=20.6
println("------------------隐式类---------------------")
val file = new File("H:\\东软大数据实训\\11.大数据客服项目\\3.代码\\ct180808.sql")
println(new RichFile(file).count())
import MyImplicit.file2RichFile
println(file.count())
println(file.read())
}
}
import java.io.File
object MyImplicit {
implicit def file2RichFile(file:File)=new RichFile(file)
}