object main { def main(args: Array[String]) { implicit val a=1 def f(x:Int)(implicit y:Int)={x+y} // 自动搜索当前作用域内Int类型的隐式参数 println(f(1)) println(f(1)(2)) } } 结果: 2 3
class f(var a:Int){ def +(v:f)={a+v.a} } object main { def main(args: Array[String]) { implicit def asdf(i:Int) = new f(i) // 定义一个 int => f() 的隐式转换函数。(隐式函数的使用范围越小越好,避免不必要的隐式转换) var a=new f(1) println(a+1) // 自动调用隐式函数将1转换成f(1) } }