请解释 Scala 中的模式匹配机制,并列举其典型应用场景。
考察说明
考查对 Scala 模式匹配语法及常用场景的理解。
回答思路
- 【回答框架 1】模式匹配是 Scala 中根据值的结构进行分支选择的语法,类似增强版 switch,但更强大。基本语法为 value match { case pattern => result }。
- 【回答框架 2】模式类型包括常量模式、变量模式、通配符模式、类型模式、case class 模式、元组模式、列表模式等,支持解构和守卫条件(if 条件)。
- 【回答框架 3】常见用法包括:匹配枚举值或常量、解构 case class 和元组、类型匹配、集合元素匹配(如 List 的 Nil 和 ::)、结合 Option 类型处理可选值、处理异常捕获等。
- 【回答框架 4】匹配是表达式,返回结果,且匹配是穷尽检查(若加上密封类可保证穷尽性),避免运行时错误。
- 【关键点 1】模式匹配是表达式,有返回值。
- 【关键点 2】支持守卫条件,可以增加 if 筛选。
- 【关键点 3】case class 支持提取器,实现解构。
- 【关键点 4】sealed 类可编译期检查穷尽性。
- 【易错点 1】通配符 _ 必须放在最后,否则后续 pattern 不可达。
- 【易错点 2】模式匹配不是简单字符串比较,注意类型擦除(如 List[Int] 运行时不完整)。