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

Scala的隐式对象和隐式类

1.隐式对象

object Test1 {case class DatabaseConfig(drive:String,url:String)//隐式对象//格式:就是在对象前面加一个 implicit//作用:给函数当默认值implicit object MySqlConfig extends DatabaseConfig("sqlserver.jdbc","localhost:3306")//定义一个连接数据库的数据def getCon(implicit config: DatabaseConfig): Unit  =  {println(config)}def main(args: Array[String]): Unit = {println(MySqlConfig)getCon   //使用默认值getCon(DatabaseConfig("sqlite","localhost:80"))   //使用自己定义的值}
}

2.隐式类

//隐式类 == 一个类 + 一个隐式转换函数
//格式:在class的前面,添加implicit
//要点:要有一个参数,就要待被转换的类型,返回的类型就是当前的类
object Test2 {implicit class X(s:String) {println("transform被调用了...")def testabc:Unit = {println("abc......",s)}}
//  def transform(s:String):X = {
//    println("transform被调用了...")
//    new X(s)
//  }def main(args: Array[String]): Unit = {"abcddd".testabc}
}

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

相关文章:

  • 【AIGC】2016-ACCV-即时追捕:自然环境下的自动唇音同步
  • 启智畅想集装箱箱号识别算法,2台相机即可实现较高识别率
  • 让IIS支持PUT请求解决IIS里不支持PUT请求的问题405 Method Not Allowed
  • 入门级捡垃圾工作站记录
  • 2024.12.9——攻防世界ics-06
  • 微信小程序介绍-以及写项目流程(重要)
  • 国内国际标准!羊毛衫检测项目、检测要求及标准
  • MySQL知识大总结(进阶)
  • 【C语言】库函数常见的陷阱与缺陷(2):字符串转化函数
  • 渗透测试基础
  • 传奇996_53——后端ui窗口局部刷新
  • C++ constexpr vs const
  • 【达梦数据库】存储过程调用实践案例-select
  • 041_Compare_Matrix_Squre_Sum_in_MATLAB中矩阵平方和的比较
  • TimeXplusplus——提高时间序列数据的可解释性,避免琐解和分布偏移问题的深度学习可解释性的框架
  • 批处理读取文本第n行并赋值给变量?--遍历所有行并赋值给变量数组
  • 嵌入式入门Day26
  • 【Vue3项目实战系列一】—— 从零开始一个vue3项目 vue3+javascript+vite 非常详细 手把手教学
  • Python_Flask04(牛马问答平台01)
  • Java转C之并发和多线程
  • 针对一个系统的权限管理这样的业务场景,使用各设计模式解说
  • Android AppCompatImageView View.Gone状态切换到View.VISIBLE重新layout,Kotlin
  • 在云上轻松部署达梦数据库
  • 什么是厄尔米特(Hermitian)矩阵?
  • React - useActionState、useFormStatus与表单处理
  • v3账号密码登录随机图片验证码
  • 不只是请求和响应:使用Fiddler解读Cookie与状态码全指南(下)
  • java+springboot+mysql游乐园管理系统
  • @RequestBody,getparameter,@RequestParam,@PathVariable之间的区别和联系
  • Linx下自动化之路:Redis安装包一键安装脚本实现无网极速部署并注册成服务