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
  }
}
相关推荐
旋风小飞棍21 小时前
如何在sheel中运行spark
大数据·开发语言·scala
rylshe13141 天前
在scala中sparkSQL连接mysql并添加新数据
开发语言·mysql·scala
MZWeiei3 天前
Spark任务调度流程详解
大数据·分布式·spark·scala
бесплатно3 天前
Scala流程控制
开发语言·后端·scala
Bin Watson10 天前
解决 Builroot 系统编译 perl 编译报错问题
开发语言·scala·perl
什么芮.13 天前
大数据应用开发和项目实战(2)
大数据·pytorch·sql·spark·scala
不要天天开心14 天前
Spark-Streaming核心编程:有状态转化操作与DStream输出
scala
欧先生^_^16 天前
Scala语法基础
开发语言·后端·scala
不要天天开心17 天前
大数据利器:Kafka与Spark的深度探索
spark·scala
不要天天开心18 天前
Kafka与Spark-Streaming:大数据处理的黄金搭档
kafka·scala