//隐式对象
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
}
}