当前位置: 首页 > news >正文

Scala的隐式类,隐式参数和值,隐式对象

1.Scala的隐式类定义语法:implicit  class  类名(参数){   }

   隐式类中参数只能定义一个,参数中的源类型与目标类型一一对应,只能从一种类型转换成另一种类型,不可以一对多或多对。

//隐式类:implicit class==隐式转换函数+类
object test {class BaseUser(){def insertUser(){println("insertUser")}}//第一步:定义一个有updateUser功能的类 PowerUser//第二步:定义一个隐式转换函数,把BaseUser--->PowerUserimplicit class PowerUser(u:BaseUser){def updateUser(){println("updateUser")}}//给这个类添加新的功能def main(args: Array[String]): Unit = {val u1=new BaseUser()u1.insertUser()u1.updateUser()  //添加一个新的功能}}


2.Scala的隐式参数定义语法:def  函数  (implicit){   }

object test {//函数的默认参数def sayName(implicit str:String="小陈"):Unit={println(str)}//隐式参数值implicit val x:String="小美"def main(args: Array[String]): Unit = {sayName("小明")sayName()sayName}
}


3.Scala的隐式值定义方式:implicit  val/var  变量名

object test {//函数的默认参数def sayName(implicit str:String="小陈"):Unit={println(str)}//隐式参数值implicit val x:String="小美"def main(args: Array[String]): Unit = {sayName("小明")sayName()sayName}}


4.Scala的隐式对象格式:implicit  object

   作用:给函数的默认参数提供隐式值

object test3 {case class DataBase(driver:String,url:String)implicit object MySql extends DataBase ("mysql","localhost:300")def getConn(implicit config:DataBase):Unit=println(config)def main(args: Array[String]): Unit = {getConn(DataBase("sqlite","localhost:80"))getConn //采用默认值}}

http://www.lryc.cn/news/501872.html

相关文章:

  • LabVIEW实现HTTP通信
  • 【EXCEL】 获取多列中 不为空的那一个数据
  • VBA API 概述 | 宏编程
  • pythonOpenCV篇:0基础带你python入门之常用函数
  • 第十七届山东省职业院校技能大赛 中职组“网络安全”赛项资源任务书样题③
  • 【每日一题 基础题】验证回文串
  • 【Hadoop】-- hadoop3.x default port
  • SQL Server:只有MDF文件,如何附加数据库
  • 深入理解代理模式(Proxy):静态代理、动态代理与AOP
  • 项目中如何选择JVM垃圾回收器?
  • 如何借助5G网关实现油罐车安全在线监测
  • Edge SCDN的独特优势有哪些?
  • 在Goland中对goroutine协程断点调试
  • 解密分布式锁:保障系统一致性的关键
  • Redis 击穿、穿透与雪崩:深度解析与应对策略
  • 8086处理器的寻址方式
  • Mask实现裁剪的原理浅析
  • 每隔一秒单片机向电脑发送一个16进制递增数据
  • 逆向攻防世界CTF系列56-easy_Maze
  • 【Linux网络编程】应用层:HTTP协议 | URL | 简单实现一个HTTP服务器 | 永久重定向与临时重定向
  • 电压调整电路汇总
  • day28 文件IO及进程线程基础
  • 【Azure 架构师学习笔记】- Azure Function (1) --环境搭建和背景介绍
  • 前端文件下载
  • 前端成长之路:HTML(3)
  • 无人机自动机库的功能与作用!
  • ubuntu 新建脚本shell并增加图标 双击应用实现python运行
  • ANR 分析SOP
  • COLA学习之环境搭建(三)
  • CSS输入框动态伸缩动效