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
  }
}
相关推荐
howard20053 小时前
1.5 掌握Scala内建控制结构
scala·内建控制结构
howard20054 小时前
1.1.2 Windows上安装Scala
scala·windows版本
allway220 小时前
Debian Regular Expressions
运维·debian·scala
、BeYourself3 天前
Scala 字面量
开发语言·后端·scala
、BeYourself11 天前
Scala 数据类型
开发语言·后端·scala
howard200511 天前
1.2 Scala变量与数据类型
scala·变量·数据类型·常量
渣渣盟11 天前
Flink定时器实战:处理时间与事件时间
大数据·flink·scala
howard200511 天前
1.1.4 Scala的使用方式
scala·交互方式·文件方式