Scala隐式转换和隐式参数0902.1

这篇博客深入探讨Scala编程中的隐式转换和隐式参数,包括隐式转换函数的底层原理、高级用法、隐式值的概念,以及如何使用隐式类。同时,还总结了使用隐式转换时的注意事项。
摘要由CSDN通过智能技术生成

Scala隐式转换和隐式参数

一、隐式转换函数的底层原理

    implicit def f1(d:Double):Int={
   
      println("double-->int")
      d.toInt
    }
    var a:Int=3.5
    println(a)
补充(注意细节):
	1)隐式转换函数的名字是任意的,隐式转换和函数名无关、和函数签名有关(参数列表-->返回值)
	2)一个作用域内可以存在多个隐式函数、要保证当前环境下能被识别的隐式函数只能有一个,不能有二义性

二、隐式转换函数高级使用

需求:类MySql-->insert   开发完之后,发现缺少方法(delete方法)
解决方法:
	1.修改源码(重新修改MySql)
	2.动态混入 (OCP)
	3.隐式转换 (OCP)
为什么要引入隐式转换、为了OCP(开闭原则)
好处:编码简洁(spark)
缺点:源码看不懂(存在隐式转换、10个类)

三、隐式值

案例一:
  def main(args: Array[String]): Unit = {
   
    test("B")
    test()
    test
    //函数形参如果用implicit修饰了,那么调用函数的时候,
    //可以不写小括号,默认用的就是隐式参数(形参)
  }
  def test(implicit name:String = "A"): Unit ={
   
    println(</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值