Scala 模式匹配:超越 switch 的强大匹配机制
模式匹配是 Scala 中最具特色的功能之一,它不仅能替代 Java 中的 switch...case,还支持类型匹配、集合匹配、对象匹配等复杂场景,甚至可以结合条件判断实现灵活的逻辑分支。本文将全面解析 Scala 模式匹配的语法、特性及应用场景。
基本语法:match 与 case
Scala 模式匹配通过 match 关键字定义匹配主体,case 关键字定义分支,语法简洁且功能强大。
基本用法(类似 switch)
1 | val operator: Char = '*' |
核心特点:
- 每个
case分支通过=>连接匹配条件和执行逻辑。 - 匹配成功后自动退出(无需
break),效率高于 Java 的switch。 case _表示默认分支,匹配所有未被其他分支覆盖的情况。
与 Java switch 的区别
| 特性 | Scala 模式匹配 | Java switch |
|---|---|---|
| 匹配类型 | 支持值、类型、集合、对象等 | 仅支持基本类型、枚举、字符串(Java 7+) |
| 分支执行 | 自动退出(无需 break) | 需要显式 break,否则穿透 |
| 返回值 | 整个 match 表达式有返回值 | 无返回值(需手动赋值) |
| 默认分支 | case _ |
default |
类型匹配:根据数据类型分支
Scala 模式匹配可直接根据变量的运行时类型进行分支,无需显式调用 isInstanceOf。

