学科分类
目录
Spark技术栈

模式匹配

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所示。

img

​ 图1 模式匹配操作控制台输出的结果

点击此处
隐藏目录