《大数据: Scala 隐式转换》

一、 Scala 隐式转换

1.  隐式函数

隐式转换函数是以implicit关键字声明的带有单个参数的函数。这种函数将会自动应用,将值从一种类型转换为另一种类型
隐式函数快速入门

使用隐式函数可以优雅的解决数据类型转换,以前面的案例入门.

implicit def f1(d: Double): Int = {  d.toInt}
//Double 是输入类型, Int 是转换后的类型


隐式函数的底层工作原理

def main(args: Array[String]): Unit = {
      implicit def f1(d: Double): Int = {
        d.toInt
      }
      implicit def f2(l: Long): Int = {
        l.toInt
      }
      val num: Int = 3.5
      println(num)
      val num2: Int = 4.5
      println(num2)
      val num3: Int = 20l
 } 


隐式转换的注意事项和细节

隐式转换函数的函数名可以是任意的,隐式转换与函数名称无关,只与函数签名(函数参数类型和返回值类型)有关。

隐式函数可以有多个(即:隐式函数列表),但是需要保证在当前环境下,只有一个隐式函数能被识别

//在当前环境中,不能存在满足条件的多个隐式函数
im

上一篇:TIMESTAMP with implicit DEFAULT value is deprecated


下一篇:Spark算子