Scala-隐式转换

系统自动完成的:把一种类型的数据转成了另一种类型的数据。

不是所有的类型都可以执行隐式转换

函数的参数类型 和 返回值类型是重要的,它约定了把什么类型转成什么类型

Scala 复制代码
//张三的函数
  def getAge():Double={
    8.5
  }

  //函数名:tranform 不重要
  //函数的参数类型 和 返回值类型是重要的,它约定了把什么类型转成什么类型
  implicit def tranform11111(d:Double): Int = {
    println("implicit 被调用了")
    d.toInt
  }

  //小花
  def main(args: Array[String]): Unit = {
    val i:Int = 1
    val d:Double = i //int -> double

    val  age:Int = getAge()
    println("今年",age)



  }

sayName

Scala 复制代码
object Test_sayName {
  //给参数设置一个默认值:如果用户不传入,就使用这个值
  def sayName(implicit name:String = "小花"):Unit={
    println(s"我叫:$name")
  }


  //隐式值:能够自己设置函数的参数默认值,而不是在代码中固定写死
  //需求:能够自己设置函数的参数默认值
  //1.在函数的默认参数前面补充关键字:implicit
  //2.在定义变量的前面 补充关键字: implicit
  //3.调用函数时,不加()
  implicit val x: String = "小李"

  def main(args: Array[String]): Unit = {
    sayName
//    sayName("小明")
//
//    sayName()

  }

}

判断手机号码

需求:让字符串增加一个功能:isPone() 检查当前字符串是否是一个合格的手机号码

Scala 复制代码
object Test_隐式sayName2 {

  
  def main(args: Array[String]): Unit = {
    //定义一个函数,用来检测输入的字符串是否是一个手机号
    def isPone(str:String):Boolean={
      //1.定义一个正则
      val reg = "1[3-9]\\d{9}".r
      // 2.reg.matches(str)
      reg.matches(str)

    }
    println(isPone("1346824y5973"))
  }

}
相关推荐
猪猪拆迁队14 小时前
虚拟工厂仿真引擎的架构设计:让一条产线可编程、可观测、可干预
后端·ai编程
字节跳动数据库14 小时前
文章分享——相似函数处理方法
人工智能·后端·程序员
云技纵横14 小时前
@Transactional 失效的 7 种场景:第 5 种最难排查
后端
用户67570498850215 小时前
你知道 Go 结构体和结构体指针调用的区别吗?一文带你彻底搞懂!
后端·go
程序员cxuan15 小时前
读懂 Claude Code 架构分析系列,第一篇,开始!
人工智能·后端·架构
用户67570498850215 小时前
面试官问“装饰器模式”,这样回答薪资多要 3000!
后端
tntxia15 小时前
Geo Scene域名修改引起的一些问题
后端
用户2986985301415 小时前
Java 实现 Word 文档加密与权限解除
java·后端
vanuan15 小时前
给你的A2A-Agent加把锁-认证鉴权实战指南
后端
Yeats_Liao16 小时前
14:Servlet中的页面跳转-Java Web
java·后端·架构