基礎語法:
變量 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 // 變量為空
}
