模式匹配是Scala函数值和闭包后第二大应用功能。Scala为模式匹配提供了极大的支持,处理消息。
模式匹配包括一系列备选项,每个替代项以关键字大小写为单位。每个替代方案包括一个模式和一个或多个表达式,如果模式匹配,将会进行评估计算。箭头符号=>
将模式与表达式分离。
尝试以下示例程序,它显示匹配的整数值。
示例
object Demo {
def main(args: Array[String]) {
println(matchTest(3))
}
def matchTest(x: Int): String = x match {
case 1 => "one"
case 2 => "two"
case _ => "many"
}
}
将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。
D:\>scalac Demo.scala
D:\>scala Demo
many
具有case
语句的块定义了一个将整数映射到字符串的函数。match关键字提供了一种方便的方式来应用一个函数(如上面的模式匹配函数)到一个对象。
请尝试以下示例程序,其中的值与不同类型的模式相匹配。
object Demo {
def main(args: Array[String]) {
println(matchTest("two"))
println(matchTest("test"