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())
  }
}
复制代码
相关推荐
翊谦7 小时前
Java Agent开发 Milvus 向量数据库安装
java·数据库·milvus
晓晓hh7 小时前
JavaSE学习——迭代器
java·开发语言·学习
Laurence7 小时前
C++ 引入第三方库(一):直接引入源文件
开发语言·c++·第三方库·添加·添加库·添加包·源文件
查古穆8 小时前
栈-有效的括号
java·数据结构·算法
kyriewen118 小时前
你点的“刷新”是假刷新?前端路由的瞒天过海术
开发语言·前端·javascript·ecmascript·html5
Java面试题总结8 小时前
Spring - Bean 生命周期
java·spring·rpc
硅基诗人8 小时前
每日一道面试题 10:synchronized 与 ReentrantLock 的核心区别及生产环境如何选型?
java
014-code8 小时前
String.intern() 到底干了什么
java·开发语言·面试
421!8 小时前
GPIO工作原理以及核心
开发语言·单片机·嵌入式硬件·学习
摇滚侠9 小时前
JAVA 项目教程《苍穹外卖-12》,微信小程序项目,前后端分离,从开发到部署
java·开发语言·vue.js·node.js