模式匹配
Scala中的模式匹配是由match case组成,它类似于Java中的switch case,即对一个值进行条件判断,针对不同的条件,进行不同的处理。
模式匹配的语法格式如下:
表达式 match {
case 模式1 => 语句1
case 模式2 => 语句2
case 模式3 => 语句3
}
上述语法格式中,match关键字主要用来描述一个表达式,位于表达式位置的后面;case关键字主要用来描述和表达式结果进行比较后的模式,若发现有一个模式可以与表达式结果进行匹配,执行所匹配模式对应的语句,而剩下的模式就不会继续进行匹配。
下面,定义一个方法matchTest(),方法的参数是一个整型字段,而方法的调用则是对参数进行模式匹配,若参数匹配的是1,则打印输出“one”;若参数匹配的是2,则打印输出“two”;若参数匹配的是_,则打印输出“many”,具体实现代码如文件1所示。
文件1 PatternMatch.scala
1 object PatternMatch{
2 def main(args: Array[String]) {
3 println(matchTest(3))
4 }
5 //模式匹配
6 def matchTest(x: Int): String = x match {
7 case 1 => "one"
8 case 2 => "two"
9 case _ => "many"
10 }
11 }
在文件1中,第3行代码调用了matchTest方法,传入的参数是3,此时,与case _进行匹配,由于case _对应的执行语句是打印输出“many”,所以控制台会输出“many”控制台的输出结果如图1所示。
图1 模式匹配操作控制台输出的结果