Scala模式匹配(二)

复制代码
一、match case 能根据 类名和属性的信息,匹配带对应的类。
注意:
        1.匹配的时候,case class的属性个数要对上
        2.属性名不需要一一对应。
Scala 复制代码
package test34

object test6 {
  case class Person(name:String)
  case class Student(name:String,className:String)
  def main(args: Array[String]): Unit = {
    val p1 = Person("黎医生")
    val s1=Student("秦彻","2(3)班")
    val a:Any=p1
    a match {
      case Person(name)=>println("普通人类??",name)
      case Student(name,className)=>println(className,"的学生",name)
      case _=>println("其他")
    }
  }
}

二、模式匹配匹配到相同年份

Scala 复制代码
package test34

object test8 {
  def main(args: Array[String]): Unit = {
    val m1=Map(
      "阿里巴巴"->1964,
      "腾讯"->1971,
      "百度"->1968,
      "小米"->1960,
      "网易"->1971,
    )
//    val t=(1969)//元组
//    println(t._2)
    //找出哪些是1971年的老板?
    //对于Map,可以for遍历
    //模式匹配
    for ((k,1971)<-m1){
      println(k)
    }
  }
}
相关推荐
foggyprojects23 分钟前
一个企业查询问题,如何从自然语言走到 DSL 再走到 SQL
后端
掘金者阿豪26 分钟前
PDO连金仓数据库(下篇):预处理语句、大对象和批量操作
后端
RealPluto28 分钟前
Rancher证书轮换过期导致不能访问UI问题处理
后端
Asize29 分钟前
Bun + TypeScript 实战:从接口约束到 RESTful 路由设计
后端·typescript·代码规范
码云骑士35 分钟前
13-列表append的底层真相(上)-listobject源码中的预分配策略
开发语言·python
鱼人1 小时前
Go 操作 MySQL:常用写法与最佳实践
后端
挖坑的张师傅1 小时前
方便 Mac 本机运行 e2b 的沙箱方案 e2b-local
人工智能·后端
开心猴爷1 小时前
Flutter 如何自动上传 可以 IPA 把构建和上传分开处理
后端·ios
二月龙1 小时前
defer 执行顺序与底层原理,90% 的人都理解不全
后端
长大19881 小时前
新手常犯的 Go 语法错误,一次性帮你避坑
后端