1.隐式值和隐式参数
使用关键字impilicit定义
隐式值就是:implicit val name:String=“zjc”
隐式方法就是给参数用implicit定义
隐式转换作用:调用方法时,不需要传参,scala会自动寻找隐式值传入
object test11 {
def main(args: Array[String]): Unit = {
implicit val name="zjc"
sayName
}
def sayName(implicit name:String): Unit ={
println(s"$name is sayName")
}
}
注意: (1)同类型隐式值只能定义一个
(2)当部分参数想要进行传参时,使用柯里化的方式将隐式参数单独起一个括号,调用时只需要给非隐式参数传参即可。
(3)定义多个隐式参数时,参数中只需要一个implicit
object test11 {
def main(args: Array[String]): Unit = {
implicit val name2="zjc"
implicit val sex1=1
sayName(18)
}
def sayName(age:Int)(implicit name:String,sex:Int): Unit ={
println(s"$name is sayName,age is $age,sex is $sex")
}
}