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

时间:2022-06-27 05:51:28

基础语法:

变量 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    // 变量为空
}