首页 > 其他分享 >假期学习记录05

假期学习记录05

时间:2024-01-20 22:55:28浏览次数:36  
标签:case val 记录 假期 Car 05 value double Spark

  学习了Scala剩下的内容:模式匹配

可以对表达式类型进行匹配

match

val colorNum = 1
val colorStr = colorNum match {
  case 1 => "red"
  case 2 => "green"
  case 3 => "yellow"
  case _ => "Not Allowed" // 什么也没有匹配上
}

可以在match使用变量

val colorNum = 4
val colorStr = colorNum match {
  case 1 => "red"
  case 2 => "green"
  case 3 => "yellow"
  case unexpected => unexpected + " is Not Allowed" // 什么也没有匹配上,放一个变量名称,会进行获取值
}

可以对表达式类型进行匹配

for(elem <- List(9,12,3,"Spark","Hadoop","Hello")){
  val Str = elem match {
    case int: Int => int + " is a int value"  // 进行判断类型
    case double: Double => double + " is a double value"
    case "Spark" => "Spark is found" // 进行查找”Spark"
    case string: String => string + " is a String value"
    case _ => "This is a unexpected value"
  }
  println(Str)
}
for(elem <- List(9,12,3,"Spark","Hadoop","Hello")){
  val Str = elem match {
    case int: Int => int + " is a int value"  // 进行判断类型
    case double: Double => double + " is a double value"
    case "Spark" => "Spark is found" // 进行查找”Spark"
    case string: String => string + " is a String value"
    case _ => "This is a unexpected value"
  }
  println(Str)
} 

也可以添加一些必要处理逻辑

case类

是一种特殊的类,用于模式匹配

case class Car(brand : String,price : Int) {
  
  val myBYDCar = new Car("BYD",89000)
  val myBWMCar = new Car("BMW",1200000)
  val myBenZCar = new Car("Benz",1500000)
  
  for(car <- List(myBWMCar,myBYDCar,myBenZCar)){
    car match {
      case Car("BYD",89000) => {
        println("Hello,PYD!")
      }
      case Car("BMW",1200000) => {
        println("Hello,BMW!")
      }
      case Car(brand, price) => {
        println("Brand:" + brand +",Price:" + price)
      }
    } 
  }

}

标签:case,val,记录,假期,Car,05,value,double,Spark
From: https://www.cnblogs.com/JIANGzihao0222/p/17977289

相关文章

  • HarmonyOS4.0系列——05、状态管理之@Prop、@Link、@Provide、@Consume,以及@Watch装饰
    状态管理看下面这张图Components部分的装饰器为组件级别的状态管理,Application部分为应用的状态管理。开发者可以通过@StorageLink/@LocalStorageLink实现应用和组件状态的双向同步,通过@StorageProp/@LocalStorageProp实现应用和组件状态的单向同步。@PropstaticProp(propName:......
  • Ubuntu20.04静态编译Boost记录
    下载Boost源码地址:https://www.boost.org/users/history/version_1_72_0.html指定安装位置./bootstrap.sh--prefix=/usr/local/boost-1-72-0编译release版本的boost库./b2toolset=gcclink=staticruntime-link=staticthreading=multi开始编译sudo./b2install--......
  • 记录--移动端 H5 Tab 如何滚动居中
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助移动端H5Tab如何滚动居中Tab在PC端、移动端应用都上很常见,不过Tab在移动端比PC端更复杂。为什么呢?移动端设备屏幕较窄,一般仅能展示4~7个Item。考虑到用户体验,UI往往要求程序员实现一个功能——......
  • UVA10539
    根据题意,可以很容易地发现,题目所要求的数都可以用形如$p^x$的式子表示(其中$p$为质数,\(x\ge2\)),即分解成只含同一个质因子的式子。这提示我们使用构造的思想。因为\(n\)最大为$10^{12}$,所以最大的\(\sqrtn\)也不会超过\(10^6\)。考虑使用线性筛求出\(10^6\)......
  • 记录一下 ArrayBlockingQueue 消息堆积的问题
    前言由于之前这个系统的日志记录是被领导要求写表的,在不影响系统性能的前提下,日志的入库操作肯定是要改成异步进行的,当时利用ArrayBlockingQueue+线程+AOP简单的去实现了一下,但是初版代码测试下来发现了一个很严重的问题,就是日志丢失的问题,本文由此而来。初步构思代码实现逻辑实......
  • 2024-01-20:用go语言,小扣在探索丛林的过程中,无意间发现了传说中“落寞的黄金之都“, 而
    2024-01-20:用go语言,小扣在探索丛林的过程中,无意间发现了传说中"落寞的黄金之都",而在这片建筑废墟的地带中,小扣使用探测仪监测到了存在某种带有「祝福」效果的力场,经过不断的勘测记录,小扣将所有力场的分布都记录了下来,forceField[i]=[x,y,side],表示第i片力场将覆盖以坐标......
  • STM32CubeMX教程19 I2C - MPU6050驱动
    1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)野火DAP仿真器keilµVision5IDE(MDK-Arm)ST-LINK/V2驱动XCOMV2.6串口助手逻辑分析仪nanoDLA2、实验目标使用STM32CubeMX软件配置STM32F407开发板的I2C1与MPU6050芯片通信,读取MPU6050的三轴加......
  • DC-4靶机做题记录
    靶机下载地址:链接:https://pan.baidu.com/s/1YbPuSw_xLdkta10O9e2zGw?pwd=n6nx提取码:n6nx参考:【【基础向】超详解vulnhub靶场DC-4-爆破+反弹shell+信息收集】https://www.bilibili.com/video/BV1Le4y1o7Sx/?share_source=copy_web&vd_source=12088c39299ad03109d9a21304b3......
  • 吴师兄学算法day08 贪心 605. 种花问题
    题目:605.种花问题易错点:没想出来,借鉴了灵山的代码的思路,强行种花。我喜欢这个思路。感觉有点像设置哨兵那样的。 我的代码:classSolution:defcanPlaceFlowers(self,flowerbed:List[int],n:int)->bool:#修改数组,每次都种花,#凑够3个0......
  • 记录--前端实现翻转图像
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助翻转图像是在视觉上比较两个不同图像的常用方法。单击其中一个将翻转它,并显示另一个图像。布局布局结构如下:<divclass="flipping-images"><divclass="flipping-images__inner"><divclass="flip......