隐式对象12.9

  //隐式对象
  object test12_9_01 {

  case class DatebaseConfig(driver: String, url:String)

  //隐式对象
  //格式:就是在对象前面加个 implicit
  //作用:给函数当默认值!
  implicit object MySqlConfig extends DatebaseConfig("mysql.jdbc","localhost:3306")

  // 定义一个连接数据库的函数
  def getCon(implicit config:DatebaseConfig):Unit ={
    println(config)
  }

  def main(args: Array[String]): Unit = {
//    println(MySqlConfig)
    getCon  //使用默认值
    getCon(DatebaseConfig("sqlite", "localhost:80"))  //使用自己定义的值
  }
}
//隐式类 == 一个类 + 一个隐式转换函数
//格式: 在class 的前面,添加implicit
//要点: 要有一个参数,就要待被转换的类型,返回的类型就是当前的类
object Test12_9_02 {

//  implicit class A{ }
  implicit class X(s:String) {
    println ("transform被调用了。。。")
    def testabc:Unit = {
      println("abc.....",s)
    }
  }
def main(args: Array[String]): Unit = {
  "abcddd".testabc
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值