隐式函数
object ImpliDemo {
implicit val age:Int =100
def opt(x:Int,y:Int)(implicit f:(Int,Int)=>Int)={
f(x,y)
}
def opt1(x:Int,y:Int)(implicit f:(Int,Int)=>Int)={
f(x,y)
}
def main(args: Array[String]): Unit = {
import Eg._
println(opt(2, 3)((x1, x2) => x1 + x2))
println(opt(6, 7))
}
}
object ImpliDemo {
implicit val age:Int =100
def opt(x:Int,y:Int)(implicit f:(Int,Int)=>Int)={
f(x,y)
}
def opt1(x:Int,y:Int)(implicit f:(Int,Int)=>Int)={
f(x,y)
}
def opt2(x:String,y:String)(implicit f:(String,String)=>String): String ={
f(x,y)
}
def main(args: Array[String]): Unit = {
import Eg._
implicit val f=(x:String,y:String)=>{
(x+y).toUpperCase
}
println(opt2("java", "js"))
}
}
隐式类
object Text00 {
def main(args: Array[String]): Unit = {
val aa=new AA
import RichAAdemo._
aa.text01
aa.text02
aa.text03
}
}
class AA {
def text01={
println("text01......")
}
}
object RichAAdemo {
implicit class RichAA(b:AA){
def text02={
println("text02.....")
}
def text03={
println("text03.....")
}
}
}