Scala的隐式对象和隐式类

1.隐式对象

Scala 复制代码
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.**隐式类

Scala 复制代码
//隐式类 == 一个类 + 一个隐式转换函数
//格式:在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
  }
}
相关推荐
更深兼春远2 天前
spark+scala安装部署
大数据·spark·scala
还是大剑师兰特5 天前
Scala面试题及详细答案100道(11-20)-- 函数式编程基础
scala·大剑师·scala面试题
华科云商xiao徐11 天前
响应式爬虫系统设计:Scala异步任务编排与弹性容错机制
爬虫·scala
ChipCamp16 天前
Chisel芯片开发入门系列 -- 18. CPU芯片开发和解释8(流水线架构的代码级理解)
开发语言·青少年编程·fpga开发·scala·dsp开发·risc-v·chisel
渣渣盟17 天前
Flink从Kafka读取数据的完整指南
flink·kafka·scala
ChipCamp20 天前
Chisel芯片开发入门系列 -- 14. CPU芯片开发和解释4(Load/Store指令再探)
arm开发·青少年编程·fpga开发·scala·dsp开发·risc-v·chisel
hweiyu0022 天前
Scala实用编程(附电子书资料)
开发语言·后端·scala
hweiyu0022 天前
Scala实现常用排序算法
开发语言·排序算法·scala
hweiyu0023 天前
学习Scala语言的最佳实践有哪些?
开发语言·学习·scala
金銀銅鐵24 天前
Scala 的缺省参数值 (default parameter value) 在 class 文件中是如何实现的?
scala