一.隐式参数
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))
}
}
转载请注明原文地址: https://lol.8miu.com/read-32557.html