模式匹配
scala有一套内建的模式匹配机制,这种机制允许在任何类型的数据上与第一个匹配策略匹配。模式匹配可以应用在很多场合,switch语句,类型检查以及提取对象中的
的复杂表达式。
下面是一个小例子,说明如何与一个整型值匹配:
1 | object MatchTest1 extends App { |
这段带有case
的代码块定义了一个从证书向字符串映射的函数
关键字match
提供了一个便捷的方法来把一个函数apply
给一个对象,比如上面的模式匹配函数matchTest
。
下面是第二个例子匹配不同类型
1 | object MatchTest2 extends App { |
第一个case匹配如果 x是integer类型的且值为1的情况
第二个case匹配如果 x是string类型的且值为two的情况
Scala的模式匹配语句在通过y样例类来匹配代数类型是最有用的。
Scala也允许定义独立自主的对类的匹配,在提取对象使用了预定义的unapply
方法。