模式和匹配
模式(patterns)是 Rust 中一种特殊的语法,用于匹配类型的结构,无论是复杂类型还是简单类型。将模式与 match 表达式及其他构造结合使用,可以更好地控制程序的控制流。一个模式由以下内容的某种组合构成:
- 字面量
- 解构的数组、枚举、结构体或元组
- 变量
- 通配符
- 占位符
一些模式的例子包括 x、(a, 3) 和 Some(Color::Red)。在模式有效的上下文中,这些组件描述了数据的形状。程序接着将值与模式进行匹配,以判断是否具有正确的数据形状,从而继续运行某段特定的代码。
要使用模式,我们将其与某个值进行比较。如果模式与值匹配,就在代码中使用该值的各个部分。回忆一下第六章中使用模式的 match 表达式,例如硬币分拣机的例子。如果值符合模式的形状,就可以使用其中的命名部分。如果不符合,与该模式关联的代码就不会运行。
本章是关于模式的全面参考。我们将介绍使用模式的有效位置、可反驳(refutable)与不可反驳(irrefutable)模式之间的区别,以及你可能会见到的各种模式语法。读完本章后,你将学会如何使用模式来清晰地表达许多概念。