Scala--基礎--模式匹配(match case)

基礎語法: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    // 變量爲空
}
相關文章
相關標籤/搜索