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"))
  }

}
相关推荐
ttwuai12 小时前
Go开源后台管理系统推荐:README、源码和License应该怎么验
开发语言·golang·开源
Java后端的Ai之路12 小时前
Python 进阶探索30 - Python中的装饰器
开发语言·人工智能·python·文件处理·装饰器模式
沫璃染墨12 小时前
《从零入门Linux系统篇(五十八):线程篇·十一——线程安全与死锁详解:从可重入到多锁管理》
linux·服务器·开发语言·c++·驱动开发·安全·架构
松就是我9029812 小时前
如何设计多Agent
后端
高频因子挖掘机12 小时前
盘中筛选要同时看价格和盘口?按需分层比“一次全拿”更好维护
后端·github·api
黑妹天下第一乖12 小时前
第 05 讲:阿加犀 AidCV 图像处理加速与 OpenCV 一致开发实战
开发语言·图像处理·人工智能·嵌入式硬件·数码相机·opencv·计算机视觉
asong12 小时前
从写代码到部署上线,Cloudflare 给 AI 配了一把新钥匙
前端·javascript·后端
RobinDevNotes12 小时前
PagedAttention原理,KV缓存也能分页
人工智能·后端
言乐612 小时前
Python基于关键词分拣快递(适用于电商与货运代理等)
开发语言·python·django·virtualenv·pygame
卷无止境12 小时前
当AI写代码遇见Rust为什么会卡壳
后端·python