基礎語法:java
變量 match{ case value1 => 語句1 // 匹配到對應值執行的語句 case value2 => 語句2 case value3 if 條件 => 語句3 // 知足匹配且知足if語句執行此語句 case value3 => 語句4 case _ => 語句5 // 其它狀況執行此語句 // case 變量2 => 語句5 // 如不知足上述匹配則執行此語句並將進行匹配的值賦給變量2 }
對類型進行模式匹配(異常處理案例)scala
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進行模式匹配blog
array match{ case Array(value1) => 語句1 // Array只有一個值value1 case Array(變量1, 變量2, 變量3) => 語句2 // Array含有三個元素執行此語句, 並將三個元素分別賦給三個變量 case Array(value1, _*) => 語句3 // 匹配第一個元素爲value1的Array, 固然若先匹配到上述狀況則不會執行 case _ => 語句4 // 匹配其它狀況 }
對List進行模式匹配io
list match{ case value1 :: Nil => 語句1 // 只包含一個value1 case 變量1 :: 變量2 :: 變量3 :: Nil => 語句2 // 包含三個元素 case value1 :: tail => 語句3 // 第一個元素爲value1 case _ => 語句4 }
case class與模式匹配class
Option與模式匹配 import
變量 match{ case Some(變量) => 語句1 // 變量有值 case None => 語句2 // 變量爲空 }