Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

模式与匹配

模式(Patterns)是 Rust 中的一种特殊语法,用于匹配类型(无论是复杂还是简单)的结构。将模式与 match 表达式以及其他结构结合使用,可以让你对程序的控制流有更多的控制。模式由以下元素的某种组合构成:

  • 字面量(Literals)
  • 解构的数组、枚举、结构体或元组
  • 变量(Variables)
  • 通配符(Wildcards)
  • 占位符(Placeholders)

一些示例模式包括 x(a, 3)Some(Color::Red)。在模式有效的上下文中,这些组件描述了数据的形状。然后,我们的程序将值与模式进行匹配,以确定其是否具有继续运行特定代码段所需的正确数据形状。

要使用模式,我们将其与某个值进行比较。如果模式匹配该值,我们就可以在代码中使用该值的各个部分。回想一下第 6 章中使用模式的 match 表达式,例如硬币分类机示例。如果值的形状符合模式,我们可以使用已命名的部分。如果不符合,则与模式关联的代码不会运行。

本章是关于模式所有相关内容的参考。我们将介绍使用模式的有效位置、可反驳模式(refutable patterns)与不可反驳模式(irrefutable patterns)之间的区别,以及你可能见到的各种模式语法。到本章结束时,你将知道如何使用模式以清晰的方式表达许多概念。