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())
  }
}
复制代码
相关推荐
皮皮林5514 小时前
拒绝写重复代码,试试这套开源的 SpringBoot 组件,效率翻倍~
java·spring boot
顺风尿一寸8 小时前
从 Java NIO poll 到 Linux 内核 poll:一次系统调用的完整旅程
java
程途知微8 小时前
JVM运行时数据区各区域作用与溢出原理
java
华仔啊10 小时前
为啥不用 MP 的 saveOrUpdateBatch?MySQL 一条 SQL 批量增改才是最优解
java·后端
xiaoye201812 小时前
Lettuce连接模型、命令执行、Pipeline 浅析
java
beata15 小时前
Java基础-18:Java开发中的常用设计模式:深入解析与实战应用
java·后端
Seven9716 小时前
剑指offer-81、⼆叉搜索树的最近公共祖先
java
雨中飘荡的记忆1 天前
保证金系统入门到实战
java·后端
Nyarlathotep01131 天前
Java内存模型
java