scala学习--难点

1 scala中的隐式转换,隐式参数与隐式类

隐式参数:使用implicit关键字标志一个值,变量或者函数参数为隐含的。

这是显示的增加参数

下面使用隐式:

标记规则:使用implicit修饰的,如

什么时候用隐式转换?

1 当方法中的参数类型与实际的类型不一致时

隐式参数,函数可以直接得到。def  findAnInt(implicit x:Int)=x

implicit val a=5
findAnInt  直接输出结果5
隐式类,implicit class Cal(x:Int){
          def add(a:Int):Int=a+x
}
print 1.add(2)==Cal(1).add(2)
 
一般来说,scala编译器会首先在方法调用处的当前范围内查找隐式转换函数;如果没有找到,会尝试在源类型或目标类型(包括源类型和目标类型的类型变量的类型的伴随对象中查找转换函数,如果还是没找到,则拒绝编译。
 
未完待续
原文地址:https://www.cnblogs.com/sunt9/p/6762075.html