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
  }
}
相关推荐
哈哈很哈哈3 天前
Spark 核心 RDD详解
大数据·分布式·spark·scala
DTS小夏3 天前
Linux 系统 + IDEA+Scala 插件:新手进阶开发指南
linux·scala·intellij-idea
渣渣盟5 天前
Spark核心:单跳转换率计算全解析
大数据·spark·scala·apache
闯闯桑6 天前
Spark 中spark.implicits._ 中的 toDF和DataFrame 类本身的 toDF 方法
大数据·ajax·spark·scala
MOMO陌染8 天前
IDEA环境搭建与输出
scala
闯闯桑10 天前
toDF(columns: _*) 语法
开发语言·前端·spark·scala·apache
q5673152311 天前
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
开发语言·爬虫·python·自动化·scala
渣渣盟13 天前
Spark自定义累加器实现高效WordCount
大数据·spark·scala
IvanCodes14 天前
一、Scala 基础语法、变量与数据类型
大数据·开发语言·scala
q5673152315 天前
Nim轻量级爬虫:异步高效+代理轮换防封
开发语言·后端·爬虫·typescript·scala