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
  }
}
相关推荐
howard20054 小时前
1.6.3 掌握Scala数据结构 - 映射
scala·可变映射·不可变映射
亿牛云爬虫专家1 天前
拒绝代理池雪崩:Scala + Akka 构建高并发的路由分发实战
scala·高并发·爬虫代理·代理ip·隧道代理·akka actor 模型·api代理
渣渣盟3 天前
Flink并行数据源:ClickSource实现详解
flink·scala
渣渣盟3 天前
Flink单流转换算子实战解析
flink·scala
渣渣盟12 天前
Flink流处理:实时计算URL访问量TopN(基于时间窗口)
大数据·flink·scala
渣渣盟18 天前
Flink事件时间与窗口操作实战指南
大数据·flink·scala
深兰科技22 天前
深兰科技与淡水河谷合作推进:矿区示范加速落地
java·人工智能·python·c#·scala·symfony·深兰科技
渣渣盟25 天前
Flink流处理:温度跳变检测与状态管理
大数据·flink·scala
小冯不疯1 个月前
金蝶云星空与轻易云集成平台数据对接方案
全文检索·scala
howard20051 个月前
1.6.2 掌握Scala数据结构 - 列表
scala·不可变列表·可变列表