一、隐式转换:编译器 偷偷地,自动地帮我们把一种数据类型转换为另一种类型
例如:int--->double
它有失败的时候(double--->int),有成功的时候。
当它失败的时候,我们提供一个工具,让它能成功
明确地,把double转成int
Scala
package test38
object test {
//复习隐式转换
implicit def X(d:Double):Int={
d.toInt
}
def main(args: Array[String]): Unit = {
var i:Int=1
var j:Double=2.1
i=j //把Double转入Int
// j=i//把Int转入Double
println(i)
}
}
练习一下:
所有的字符串都能调用isPhone方法,来校验自己是不是一个手机号
Scala
package test38
//需求
//完成一个功能,人所有的字符串都能调用isPhone方法,来校验自己是不是一个手机号
object test1 {
//开始你的代码...
class StrongString(val str:String){
def isPhone():Boolean={
val reg="1[3-9]\\d{9}".r
reg.matches(str)
}
//验证是否身份证号
def isID:Boolean={
val reg="1[3-9]\\d{9}".r
reg.matches(str)
}
}
//定义一个特殊的转换函数,把str===>StrongString的对象
implicit def xxxx(str:String):StrongString={
// println("偷偷调用implicit")
new StrongString(str)
}
def main(args: Array[String]): Unit = {
println("136a".isPhone())//==> false
}
}