Scala implicit 隐式详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35063002/article/details/80305986

implicit的作用,有2点:

        第一个扩展其他类,增加方法;

class A (val data:Int){
   ...
}
此时我们希望扩展该类的功能,增加类A的数据显示功能
implicit class B(a:A) {
   def show {
       println(a.data)              
   }
}
此时我们扩展了类A功能,可以如下使用。
val a = new A(2)
a.show()

        第2点,添加隐式参数,用户在使用方法时可以使用原定义好的implicit 参数;

 def talk(name : String)(implicit content:String) = println(name+":"+content)

 implicit val content = "Dollar"

talk("java")

 talk("java")("spark")

结果:

java:Dollar

java:spark

猜你喜欢

转载自blog.csdn.net/qq_35063002/article/details/80305986