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
  }
}
相关推荐
IT_陈寒17 分钟前
Redis持久化这个坑,我爬了一整天才出来
前端·人工智能·后端
无风听海17 分钟前
多租户系统中的 OIDC:Discovery 端点与联合登录的深度实践
后端·python·flask
小小前端仔LC1 小时前
Node.js + LangChain + React:搭建个人知识库(六)- “吃什么”项目实战:从700+菜谱入库到Taro H5端JSON渲染
前端·后端
huangdong_1 小时前
1688商品图片采集技术解析:登录态处理与SKU图自动分类
开发语言
chase_my_dream1 小时前
C++ + SLAM 高频面试问题整理
开发语言·c++·面试
程序员黑豆1 小时前
AI全栈开发之Java:怎么配置Java环境变量
前端·后端·ai编程
Cloud_Shy6181 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
苍何2 小时前
一手实测 Claude Fable 5,手搓了个 Obsidian 的 Codex 插件
后端
天佑木枫2 小时前
15天Python入门系列 · 序
开发语言·python
swipe2 小时前
做多轮对话 Agent,为什么我建议把短期记忆放到 Redis
后端·面试·llm