Scala中的隐式转换彻底精通

本文深入探讨Scala的隐式转换特性,包括隐式函数、隐式参数和隐式类的使用条件及限制,通过代码实例展示如何在Scala中利用隐式转换增强代码表现力。

       序言:Scala隐式转换具有很强大的功能。Scala隐式转换让Scala编程语言更加富有变现力,不需要将一些显而易见的类型转换写入代码。Scala隐式转换也帮助实现不需要修改代码就可以扩展新功能。Scala隐式转换用implicit修饰符表示,可以作用在诸如类,参数和值等Scala关键字,使之分别称为隐式类,隐式参数和隐式值。

      一😊隐式转换使用条件

隐式转换是函数参数或者对象的隐式转换,隐式值必须在伴生对象中声明。

隐式转换使用的条件

   (1)传入参数类型与预期类型不匹配时,会找是否有将该参数类型转换为预期参数类型的隐式值;如果调用该函数的对象可以找到匹配的隐式值,同样会发生隐式转换。

  (2)当对象访问不存在成员时,会找该对象是否有转换成其他对象的隐式值.

 使用隐式转换的限制条件

     (1)implicit关键字只能用来修饰方法,变量(参数)和伴生对象

      (2)隐式转换的方法(变量和伴生对象)在当前范围内才有效。如果隐式转换不在当前范围内定义(比如定义在另外一个类中或包含在某个对象中),那么必须通过import语句将其导入.

二代码实操:

隐式函数
 

package org.jy.data.yh.bigdata.drools.scala.grammar
/**
  * 隐式函数
  * 隐式转换案例一:隐式转换是Scala的重难点之一
  */
object ImplicitTest {
  implicit def a2RichA(a:A) = new RichA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值