基础语法:
变量 match{
case value1 => 语句1 // 匹配到对应值执行的语句
case value2 => 语句2
case value3 if 条件 => 语句3 // 满足匹配且满足if语句执行此语句
case value3 => 语句4
case _ => 语句5 // 其它情况执行此语句
// case 变量2 => 语句5 // 如不满足上述匹配则执行此语句并将进行匹配的值赋给变量2
}
对类型进行模式匹配(异常处理案例)
import java.io._
def processException(e: Exception){
e match{
case e1: IllegalArgumentException => 语句1
case e2: FileNotFoundException => 语句2
case e3: IOException => 语句3
case _: Exception => 语句4 // 其它异常
}
}
对Array进行模式匹配
array match{
case Array(value1) => 语句1 // Array只有一个值value1
case Array(变量1, 变量2, 变量3) => 语句2 // Array含有三个元素执行此语句, 并将三个元素分别赋给三个变量
case Array(value1, _*) => 语句3 // 匹配第一个元素为value1的Array, 当然若先匹配到上述情况则不会执行
case _ => 语句4 // 匹配其它情况
}
对List进行模式匹配
list match{
case value1 :: Nil => 语句1 // 只包含一个value1
case 变量1 :: 变量2 :: 变量3 :: Nil => 语句2 // 包含三个元素
case value1 :: tail => 语句3 // 第一个元素为value1
case _ => 语句4
}
case class与模式匹配
Option与模式匹配
变量 match{
case Some(变量) => 语句1 // 变量有值
case None => 语句2 // 变量为空
}
