一.隐式参数
implicit var a:Int=30
implicit var b:String="40"
def ImpTest1(a:Int,b:Int)(implicit c:String,d:Int):Unit={
println(a+b+c+d)
}
ImpTest1(10,20)
def ImpTest2(a:Int,b:Int)(implicit c:String,d:Int):Unit={
println(a+b+c+d)
}
ImpTest1(10,20)(30,"40")
def ImpTest3(a:Int,b:Int)(implicit c:String="40",d:Int=30):Unit={
println(a+b+c+d)
}
ImpTest1(10,20)()
二.隐式函数
implicit def douobleToInt(a:Double)=a.toInt
implicit def stringToInt(a:String)=Integer.parseInt(a)
def main(ages:Array[String]):Unit={
var a:Int=3.5
var b:Int="123"
println(a)
println(b)
}
}
三.隐式类
class Person{}
object ImpClass{
implicit class demoImp(p:Person) {
def add(a:Int,b:Int)=a+b
def chen(a:Int,b:Int)=a*b
}
def main(ages:Array[String]):Unit={
val p=new Person
println(p.add(10,20))
println(p.chen(10,20))
}
}