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())
  }
}
复制代码
相关推荐
liwulin050613 小时前
【PYTHON】COCO数据集中的物品ID
开发语言·python
小鸡吃米…13 小时前
Python - XML 处理
xml·开发语言·python·开源
@淡 定13 小时前
异常处理最佳实践
java
一起养小猫13 小时前
LeetCode100天Day1-字符串匹配与Z字形变换
java·leetcode
白宇横流学长13 小时前
基于SpringBoot实现的冬奥会科普平台设计与实现【源码+文档】
java·spring boot·后端
APIshop13 小时前
Java爬虫1688详情api接口实战解析
java·开发语言·爬虫
Mr.Jessy14 小时前
JavaScript高级:深浅拷贝、异常处理、防抖及节流
开发语言·前端·javascript·学习
bing.shao14 小时前
Golang 高并发秒杀系统踩坑
开发语言·后端·golang
Evan芙14 小时前
Tomcat内存机制以及按场景调优
java·tomcat
liwulin050614 小时前
【PYTHON-YOLOV8N】关于YOLO的推理训练图片的尺寸
开发语言·python·yolo