天天看点

scala隐式函数:通过隐式转换为 Int 类型增加方法myMax和myMin

隐式转换

1)说明

隐式转换可以在不需改任何代码的情况下,扩展某个类的功能。

2)案例实操

需求:通过隐式转换为 Int 类型增加方法。
class MyRichInt(val self: Int) {
    def myMax(i: Int): Int = {
        if (self < i) i else self
    }
    def myMin(i: Int): Int = {
        if (self < i) self else i
    }
}
object TestImplicitFunction {
    // 使用 implicit 关键字声明的函数称之为隐式函数
    implicit def convert(arg: Int): MyRichInt = {
        new MyRichInt(arg)
    }
    def main(args: Array[String]): Unit = {
        // 当想调用对象功能时,如果编译错误,那么编译器会尝试在当前作用域范围内查找能调用对应功能的转换规则,这个调用过程是由编译器完成的,所以称之为隐式转换。也称之为自动转换
        println(2.myMax(6))
    }
}      

继续阅读