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
  }
}
相关推荐
机器视觉知识推荐、就业指导2 小时前
面试问题详解五:Qt 信号与槽的动态管理
开发语言·qt
你的人类朋友7 小时前
说说git的变基
前端·git·后端
阿杆8 小时前
玩转 Amazon ElastiCache 免费套餐:小白也能上手
后端
阿杆8 小时前
无服务器每日自动推送 B 站热门视频
后端
四维碎片8 小时前
【Qt】线程池与全局信号实现异步协作
开发语言·qt·ui·visual studio
IT码农-爱吃辣条8 小时前
Three.js 初级教程大全
开发语言·javascript·three.js
☺����9 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
染翰9 小时前
lua入门以及在Redis中的应用
开发语言·redis·lua
王者鳜錸9 小时前
PYTHON让繁琐的工作自动化-函数
开发语言·python·自动化
公众号_醉鱼Java9 小时前
Elasticsearch 字段膨胀使用 Flattened类型
后端·掘金·金石计划