package Scala12_5//隐式转换的作用是什么? //编译器自动滴,偷偷滴,把数据类型从A ——>B //有可能会成功,也有可能失败 //implicit:隐式转换 object Scala12_05 {// def main(args: Array[String]): Unit = {//val i : Int = 1把Int类型,转成Double类型// val b:Double = i////// val d:Double = 1.2// val j:Int = d//// }// def getAge(): Double = {// 19.5// }//// def main(args: Array[String]): Unit = {implicit 隐式转换函数名字不重要重要的是,参数类型和返回值类型隐式函数:implicit修饰的函数特点:1 自动被调用 2 函数名字不重要,重要的是,参数类型和返回值类型// implicit def abs(d: Double): Int = {// d.toInt// }//// val i: Int = getAge()// println(i)// }// 隐式值// 函数的默认参数// 函数的默认值:小花// def sayName(implicit name: String = "小花"): Unit = {// println(s"我叫:$name")// }// // 需求:更改函数参数的默认值(不传入这个值的时候,用到的值),不要写死// // 步骤:// // 1.定义函数的默认参数时,添加implicit// // 2.需要修改这个默认值时,定义一个同类型的 隐式值: implicit修饰变量implicit val xx:String = "小明明"//// def main(args: Array[String]): Unit = {// sayName("小小")// sayName// sayName//// }//开始你的代码....implicit class StrongString(val str: String) {def isPhone(): Boolean = {val reg = "1[3-9]\\d{9}".rreg.matches(str)}//验证是否身份证号def isID: Boolean = {val reg = "".rreg.matches(str)}}// 定义一个特殊的转换函数,把str====》StrongString 的对象 // implicit def xxxx(str: String): StrongString = { // new StrongString(str) // }// // def main(args: Array[String]): Unit = { // val str:String = "13612345678" // val str = // println("136a".isPhone()) //==>False // } //}