基础语法:
变量 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 // 变量为空 }