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())
  }
}
复制代码
相关推荐
前端 贾公子17 小时前
LangChain核心组件 == 提示词(Prompts)
开发语言·c#
niucloud-admin17 小时前
JAVA V6 多商户商城 开发文档——手机端前端
java·开发语言·前端
茉莉玫瑰花茶17 小时前
GO [ 并发 ]
开发语言·后端·golang
云安全助手17 小时前
自建接入VS聚合平台:企业 AI 调用的选型思路与迁移成本拆解
java·大数据·数据库·人工智能·ai大模型
樱花落木兰17 小时前
SpringBoot + ECharts 后台数据统计报表模块实战
java·javascript·spring boot·ai·log4j·github·echarts
霸道流氓气质17 小时前
Dify 可视化 LLM 应用开发平台完全指南:从Workflow编排到Java生产级集成实战
java·开发语言
m0_5873830017 小时前
24小时自助健身房软硬件解决方案实战:从架构设计到部署指南
java·spring·小程序·架构·需求分析
2601_9622186117 小时前
深入理解C++中的thread_local线程局部变量的应用
开发语言·c++
CallFay云起未来17 小时前
AI客服上线后多久才能回本?从TCO到ROI的完整测算方法
java·大数据·人工智能·架构·文心一言
Sam_Deep_Thinking17 小时前
什么是CountDownLatch?
java·后端·面试·程序员