您的位置:首页 > 游戏 > 游戏 > 黄冈推广软件_武汉网站制作公司选华企加速器_长岭网站优化公司_seo海外推广

黄冈推广软件_武汉网站制作公司选华企加速器_长岭网站优化公司_seo海外推广

2024/12/22 14:58:44 来源:https://blog.csdn.net/GZM1314YMX/article/details/144255301  浏览:    关键词:黄冈推广软件_武汉网站制作公司选华企加速器_长岭网站优化公司_seo海外推广
黄冈推广软件_武汉网站制作公司选华企加速器_长岭网站优化公司_seo海外推广

一:

1.隐式转换概述:

隐式转换与模式匹配都是scala中提供的比较强大的特性。

2.隐式转换的定义:

在实际编程中,要想把一个不匹配的类型赋值,需要先转换成匹配的类型。scala的隐式转换会自动将一种类型的数据转换成另一种类型。隐式转换就是scala自动转换。对于户编程而言不可见,不需要手动编写转换代码。

3.scala隐式转换声明

scala的隐式转换声明关键字为implicit

package test10object test10_4 {class StrongString(str: String) {def isPhone(str: String): Boolean = {val reg = "1[3-9]\\d{9}".rreg.matches(str)}def isEmail:Boolean={val reg="r"reg.matches(str)}}implicit def strongString(str:String):StrongString ={new StrongString(str)}def main(args: Array[String]): Unit = {val str: String = "13239612335"//需求:给字符串补充一个功能,isPhone。判断它是不是一个手机号码val rs = str.isPhone
//  val rs = (new StrongString(str)).isPhone
//      val rs = stringtoStrongString(str).isPhoneprintln(s"$str 的检查结果是:$rs")
}
}
package test10//隐式值
object test10_3 {//函数的默认参数//函数的默认参数:小花def sayName(implicit name:String="小花"):Unit ={println(s"我叫:$name")}//需求更 改函数的默认值(不传入这个值的时候,用到的值),不要写死//步骤://1.定义函数的默认参数时,添加implicit//2.需要修改这个默认值时,定义一个同类型的隐式值:implicit 修改变量implicit val xxx: String = "小明明"//  implicit val defaultValue:String="小明"def main(args: Array[String]): Unit = {sayName("无敌小旋风")sayNamesayName//小明}}
package test10
//潜规则:老代码不要改!!!可以加新代码
object test10_2 {
//小明def getAge():Double ={19.5}//implicit 隐式转换//函数名字不重要//重要的是:参数类型和返回值类型!!!//隐式函数:implicit修饰的函数//特点:1.自动被调用 2.函数名字不重要,重要的是,参数类型和返回值类型!implicit def abc(d:Double):Int ={d.toInt}//小花def main(args: Array[String]): Unit = {
//    val i :Int = doubleToInt(getAge())val i:Int = getAge()println(i)}}
package test10object test10_5 {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 ={
//  println("偷偷调用implicit")new StrongString(str)
}def main(args: Array[String]): Unit = {println("136a".isPhone())}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com