6、Scala隐式转换-创新互联

一、Scala隐式转换使用场景

作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。创新互联提供从前期的网站品牌分析策划、网站设计、网站制作、成都网站制作、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。

    1、用于从一种类型到另一种类型的转换。


    2、用于缺少参数方法的调用

二、Scala隐式转换分类

    1、隐式方法

     implicit def intToString(x: Int) = x.toString

    2、隐式类

     implicit class RichFile(file: File) {

       def read = Source.fromFile(file).mkString

      }

     new java.io.File(".").read

    3、隐式对象


     implicit object StringOrdering extends Ordering[String] {

       override def compare(x: String, y: String): Int = x.length - y.length

      }

    4、隐式变量

     implicit val test = 5

  5、隐式参数

     implicit val test = 5

     findAnInt

     def findAnInt(implicit x: Int) = x

三、隐式转换规则

    1、如果表达式不符合编译器要求的类型,编译器会查找能使之符合类型要求的隐式转换

    2、如果T类型中没有成员e,但是我们还是想通过T.e来访问e,那么编译器会查找能应用到T类型并且返回类型包含成员e的隐式转换

四、隐式查找的规则

    1、隐式实体在查找发生的地点可见(可以通过import将隐式实体绑定到当前作用域)

    2、如果按照第一条规则没有找到隐式实体的话,那么会在源类型和目标的类型(T)的隐式作用域里包含的所有隐式实体中查找

        2.1、类型T以及它的父类的伴生对象

        2.2、参数化类型T的所有的类型参数的伴生类

        2.3、类型T或者类型T的类型参数所在的对象(object)

        2.4、包对象

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:6、Scala隐式转换-创新互联
链接URL:http://hbruida.cn/article/djcoho.html