隐式参数:函数/方法中参数前有implicit关键字
//7
object Context_Implicits{
implicit val default : String = "Java"
}
object Param{
//这里有两个参数列表,属于柯里化
def print(content : String)(implicit language : String){ //编译器会把带有implicit的参数,作为缺省值/默认值提供给这个函数/方法
println(content + ":" + language)
}
}
object Implicit_Parameters_60 {
def main(args: Array[String]): Unit = {
Param.print("Spark")("Scala") //可以直接传入两个参数
import Context_Implicits._
Param.print("Hadoop") //也可以不填充第二个参数。编译器会从作用域/静态方法/静态val/object伴生对象中查找隐式参数,作为默认参数
}
}
参考资料来源于大数据梦工厂 深入浅出scala 第60讲 由王家林老师讲解