Scala的隐式转换

今天读Scala代码,遇到了implict关键字,参考博客对其分析,并自己实际动手编码,主要了解了scala中的隐式函数的用法:

def main(args: Array[String]): Unit = {
        implicit def double2Int(x:Double):Int=x.toInt;
        val x:Int = 3.5
        print(x)
}

//输出:3

要点如下:

  • 隐式函数之前采用implict修饰
  • 隐式函数命名无要求,例如上面代码的隐式函数名可以任意取用
  • 隐式函数不用显式调用,编译器会在需要时自己调用,如上面代码中,在第三行需要这种double转化为int时,编译器自动调用double2Int函数实现转化。

注:在Scala中不支持这种double转化为int,编译器会报错,但int可以直接赋值给double变量,编译器会自动实现隐式转化。

  import scala.language.implicitConversions
  implicit def int2long(x: Int): Long = x.toLong
  implicit def int2float(x: Int): Float = x.toFloat
  implicit def int2double(x: Int): Double = x.toDouble
//Scala的Int类部分源码
发布了119 篇原创文章 · 获赞 132 · 访问量 50万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览