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