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
  }
}
相关推荐
李白的天不白12 天前
确认 Nginx 配置文件是否真的生效
scala
醉颜凉14 天前
Scala自定义Monad实战:从理论到应用的完整指南
大数据·算法·scala
那晚的她14 天前
Scala中Set集合
开发语言·后端·scala
IvanCodes14 天前
二、Scala流程控制:分支与循环
大数据·scala
Veggie2614 天前
【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十四章 29 PyTorch模型扩展自定义Module【AI Infra3】[PyTorch Scala硕士研一课程】
人工智能·深度学习·scala
Clf丶忆笙14 天前
搭建支持多语言开发的Quarkus环境:Java、Kotlin与Scala全栈指南
java·开发语言·云原生·kotlin·scala·quarkus
IvanCodes14 天前
四、Scala深入面向对象:类、对象与伴生关系
开发语言·后端·scala
嗯.~14 天前
scala的泛型应用场景
开发语言·后端·scala
醉颜凉14 天前
Scala Cats Effect纯函数式并发编程:从Fiber模型到生产级应用
大数据·网络·scala
2601_9611940216 天前
考研学校专业课真题
spring boot·考研·eclipse·log4j·scala·symfony