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
  }
}
相关推荐
昵称为空C1 小时前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
架构师沉默2 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
RoyLin2 小时前
TypeScript设计模式:适配器模式
前端·后端·node.js
该用户已不存在2 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
Moonbit2 小时前
MoonBit 正式加入 WebAssembly Component Model 官方文档 !
前端·后端·编程语言
Goland猫3 小时前
电商架构图
后端
Java中文社群3 小时前
重要:Java25正式发布(长期支持版)!
java·后端·面试
我是天龙_绍3 小时前
Whisper 通过 mp3输出中文
后端
zjjuejin3 小时前
Maven环境搭建
后端·maven
我是天龙_绍3 小时前
项目根目录有requirements.txt 如何安装
后端