scala的隐式转换

复制代码
一、隐式转换:编译器 偷偷地,自动地帮我们把一种数据类型转换为另一种类型
                例如:int--->double
它有失败的时候(double--->int),有成功的时候。
当它失败的时候,我们提供一个工具,让它能成功
明确地,把double转成int
Scala 复制代码
package test38

object test {
//复习隐式转换
  implicit def X(d:Double):Int={
    d.toInt
  }

def main(args: Array[String]): Unit = {
  var i:Int=1
  var j:Double=2.1
  i=j //把Double转入Int
//  j=i//把Int转入Double
  println(i)
}
}
复制代码
练习一下:
所有的字符串都能调用isPhone方法,来校验自己是不是一个手机号
Scala 复制代码
package test38
//需求
//完成一个功能,人所有的字符串都能调用isPhone方法,来校验自己是不是一个手机号
object test1 {
  //开始你的代码...
  class StrongString(val str:String){
    def isPhone():Boolean={
      val reg="1[3-9]\\d{9}".r
      reg.matches(str)
    }
    //验证是否身份证号
    def isID:Boolean={
      val reg="1[3-9]\\d{9}".r
      reg.matches(str)
    }
  }
  //定义一个特殊的转换函数,把str===>StrongString的对象
  implicit def xxxx(str:String):StrongString={
//    println("偷偷调用implicit")
    new StrongString(str)
  }
  def main(args: Array[String]): Unit = {
        println("136a".isPhone())//==> false
  }
}
相关推荐
benchmark_cc1 分钟前
QuantDash 安装成功后,如何验证 Python 环境可以正常导入 SDK?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
学逆向的14 分钟前
C 内存属性
c语言·开发语言·算法·网络安全
武子康25 分钟前
Vercel Cache Reason:相同 MISS,怎样决定下一步查什么
人工智能·后端·agent
杨文说AI与数字化1 小时前
把模型依赖做成可替换的组件:三层适配 + 一套回归评估
后端
IT_陈寒1 小时前
Vue的这个响应式陷阱我居然现在才发现
前端·人工智能·后端
WL学习笔记2 小时前
使用string类
c++·后端·string类
HAPPY酷2 小时前
C++ 自定义内存池优化点云处理:从裸指针到 RAII 自动回收
开发语言·c++
飞鸟真人2 小时前
IM网关系列(九)单账号流量统计:滑动窗口桶方案设计与Go实现
后端·golang
梦帮科技2 小时前
量子纠缠网络与量子隐形传态攻防:量子中继器信道串扰、纠缠态保真度降解与量子路由劫持
开发语言·网络·人工智能·算法·自动化·php