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


基礎語法:

變量 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    // 變量為空
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM