模式匹配时Scala很强大的一个功能。
模式匹配
模式匹配种类繁多,通常有七种:
- 通配符匹配
- 常量匹配
- 守卫匹配(变量匹配)
- 构造函数匹配
- 集合类型匹配
- 元组类型匹配
- 类型匹配。
注:不仅仅是匹配,我们在匹配时还可以做if判断。
常量匹配
守卫匹配(变量匹配)
其中i是守卫,守卫名称可以任意起名。这里在匹配时我们做了if判断。
通配符匹配
通配符 _ 保证处理所有的场景,负责,当不匹配的时候系统将抛出运行时异常。
通配符 _ 的缺点是在匹配到时,我们无法获取到匹配值。此时,我们可以使用守卫匹配(变量匹配)。
构造函数匹配
类型匹配
集合匹配
元组匹配
样本类
样本类可以方便得存储和匹配类的内容,不需要用new关键字创建便可以使用。
凡是样本类中基于构造函数的参数都自动地实现了equals方法和toString方法,用来保证模式匹配时对象的相等判断。
样本类也可以像普通类一样拥有方法。
上述构造函数匹配便是利用样本类进行匹配。