scala模式匹配

1、最基础的模式匹配
package com.imooc.scala.scala6

import scala.util.Random

/**

  • 模式匹配
    */

object MatchAPP extends App {
val names = Array(“aaa”,“bbb”,“ccc”)
val name = names(Random.nextInt(names.length))
name match {
case “aaa” => println(“aaaaaaaaaaa”)
case “bbb” => println(“bbbbbbbbbbb”)
case “ccc” => println(“ccccccccccc”)
case _ => “没有”
}

def shuZi(grade:String): Unit ={
grade match {
case “a” => println(“a”)
case “b” => println(“b”)
case _ => println(“无”)
}
}

shuZi(“a”)
shuZi(“c”)
}
2、加条件进行匹配
//条件过滤
def shuZi1(name:String,grade:String): Unit ={
grade match {
case “a” => println(“a”)
case “b” => println(“b”)
case _ if(name == “wangwu”)=> println(“有名字”)
case _ => println(“无”)
}
}

shuZi1(“lisi”,“a”)
shuZi1(“wangwu”,“c”)
3、Array模式匹配
//数组匹配
def shuZU(array:Array[String]): Unit ={
array match {
case Array(“a”) => println(“a”)
case Array(x,y) => println(“两个”)
case Array(x,y,c) => println(“三个”)
case Array(“a”,_*) => println(“多个”)
case _ => println(“没有”)
}
}
shuZU(Array(“a”))
shuZU(Array(“c”,“y”))
shuZU(Array(“c”,“y”,“v”))
shuZU(Array(“a”,“y”,“v”,“c”))
4、List模式匹配
在这里插入图片描述
5、类型匹配
在这里插入图片描述
6、Scala异常处理
在这里插入图片描述
7、case class模式匹配
在这里插入图片描述
在case模式匹配是一定要传一个顶层的进来 比如这个的class Person
在这里插入图片描述
8、Some None模式匹配
在这里插入图片描述