一、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)
}
}
}