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编译器会首先在方法调用处的当前范围内查找隐式转换函数;如果没有找到,会尝试在源类型或目标类型(包括源类型和目标类型的类型变量的类型)的伴随对象中查找转换函数,如果还是没找到,则拒绝编译。
未完待续