1、隐式转换
如果函数没有柯里化,implicit关键字会作用于所有参数,要想使用implicit只作用于某个函数参数,则需要将函数进行柯里化,匿名函数不能使用隐式参数
1 即使你能轻松驾驭scala语言中的隐式转换,能不用隐式转换就尽量不用
2 如果一定要用,在涉及多次隐式转换时,必须要说服自己这样做的合理性
3 如果只是炫耀自己的scala语言能力,请大胆使用
import java.io.File
import scala.io.Source
/**
* @program: ScalaBlog
* @description: 隐式转换和隐式参数是Scala中两个非常强大的功能,
* 利用隐式转换和隐式参数可以进行一系列的代码的简化处理,
* 对类的方法的增强,丰富现有类库的功能
* @author: allen
* @create: 2018-09-17 17:42
**/
class ImplicitDemo {
}
class RichFile(val from: File) {
val read: String = Source.fromFile(from.getPath).mkString
}
object RichFile {
// 隐式转换方法
implicit def file2RichFile(from: File) = new RichFile(from)
}
object RunRichFile extends App {
import RichFile._
println(new File("blog.txt").read)
}