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
  }
}
相关推荐
晓晓hh4 小时前
JavaSE学习——迭代器
java·开发语言·学习
Laurence4 小时前
C++ 引入第三方库(一):直接引入源文件
开发语言·c++·第三方库·添加·添加库·添加包·源文件
kyriewen115 小时前
你点的“刷新”是假刷新?前端路由的瞒天过海术
开发语言·前端·javascript·ecmascript·html5
014-code5 小时前
String.intern() 到底干了什么
java·开发语言·面试
421!5 小时前
GPIO工作原理以及核心
开发语言·单片机·嵌入式硬件·学习
摇滚侠5 小时前
JAVA 项目教程《苍穹外卖-12》,微信小程序项目,前后端分离,从开发到部署
java·开发语言·vue.js·node.js
@insist1236 小时前
网络工程师-生成树协议(STP/RSTP/MSTP)核心原理与应用
服务器·开发语言·网络工程师·软考·软件水平考试
野生技术架构师6 小时前
2026年牛客网最新Java面试题总结
java·开发语言
环黄金线HHJX.6 小时前
Tuan符号系统重塑智能开发
开发语言·人工智能·算法·编辑器
dog2506 小时前
对数的大脑应对指数的世界
开发语言·php