scala之隐式转换

复制代码
隐式转换:编译器 自动地帮我们把一种类型数据转换为另一种类型。
例如 int -->double
他有失败的时候(double-->int),有成功的时候
Scala 复制代码
 implicit def X(d:Double):Int={
   println("implict X 被调用了")
    d.toInt
  }

  def main(args: Array[String]): Unit = {
    var i:Int=1
    i=2.1

    //i=j//把Double 转入 Int
   // j=i   //把Int  转入Double
    println(i)
  }
复制代码
复制代码
需求
完成一个功能,让所有的字符串都能调用isPhone方法,来校验自己是不是一个手机号
Scala 复制代码
  class StrongString(val str:String) {
    def isPhone(): Boolean = {
      val reg = "1[3-9]\\d{9}".r
      reg.matches(str)
    }
    def isID: Boolean={
      val reg="".r
      reg.matches(str)
    }
  }
//定义一个特殊的转换函数,把str===>StrongString的对象
  implicit def tranform(str:String):StrongString={
    
    new StrongString(str)
  }

  def main(args: Array[String]): Unit = {
 
//    str.isPhone() //==>true
//    "136a".isPhone() //==>flase
    println(tranform("abc").isPhone())
  }
}
复制代码
相关推荐
q***25114 分钟前
java进阶1——JVM
java·开发语言·jvm
while(1){yan}15 分钟前
线程的状态
java·开发语言·jvm
豐儀麟阁贵17 分钟前
8.3 Java常见的异常类
java·开发语言
20岁30年经验的码农17 分钟前
Java JVM 技术详解
java·jvm·压力测试
1***815319 分钟前
C在游戏中的场景管理
java·jvm·游戏
lzh2004091922 分钟前
【C++STL】List详解
开发语言·c++
q***448125 分钟前
Java进阶10 IO流
java·开发语言
济宁雪人31 分钟前
Java安全基础——文件系统安全
java·开发语言·安全
Charles_go32 分钟前
C#中级46、什么是模拟
开发语言·oracle·c#
20岁30年经验的码农36 分钟前
Java RabbitMQ 实战指南
java·开发语言·python