该技能面向 Rust 模式匹配的语法与规则,适合在编写 match、if let、let else、while let 或进行解构时查阅。主要内容包括:match 的穷尽性检查、分支顺序、通配符 _、#[non_exhaustive] 枚举必须补 _ 分支;if let 的单模式匹配与可选 else;let else 的 else 分支必须发散(return、panic! 等),绑定在语句之后仍可用;while let 适用于非普通迭代器场景。if let 链仅在 edition 2024 且 Rust 1.88+ 可用,多个条件只能用 && 连接。解构覆盖元组、结构体、枚举、切片/数组与引用,省略字段需用 ..,否则报 E0027;切片可用 [first, rest @ ..] 绑定剩余部分。还介绍 ref/ref mut 的按引用绑定,并建议优先在 scrutinee(被匹配值)上取引用,借助匹配人体工学。or 模式要求各分支绑定同名同类型变量(否则 E0408/E0409);守卫不参与穷尽性判断,需提供兜底分支;@ 绑定可同时命名并测试值;区间模式中 ..= 为闭区间,.. 为排除上界(Rust 1.80+)。限制与说明:if let 链在 edition 2021 及更早版本无法编译;守卫表达式不被编译器计入穷尽性;更多陷阱与示例见技能附带的方法、示例与反模式参考文件。文中未提供安装、定价或平台等额外信息。
rust-syntax-pattern-matching
编程与开发
更新于 10-15 22:18