Scala 隐式转化implicit

  • 分类(隐式值、隐式函数、隐式类)
  • 隐式转化主要解决两种类型之间的转化,进而实现拓展开放、修改封闭,有点类似装饰器
  • 关键语法:implicit
package com.abc
// 隐式转换
object ImplicitDemo {
  def main(args: Array[String]): Unit = {
    // 1、隐式值(使用隐式值不能使用fun1()调用)
    implicit val a1:String = "隐式值"
    fun1
    // 2、隐式函数
    val i:Int = 1.5F
    println(s"隐式函数:$i")
    // 3、隐式类(不能是顶级类,既只能包含在object或者class里面)
    implicit class I(arg:A){
      def b(): Unit ={
        println("A隐式类,增强类A的功能")
      }
    }
    val a:A = new A
    a.b()
  }

  def fun1(implicit s:String): Unit ={
    println(s)
  }

  //隐式函数
  implicit def fun2(f:Float):Int={
    f.toInt
  }
}
class A(){

}
  • 运行结果
  隐式值
  隐式函数:1
  A隐式类,增强类A的功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值