模式与匹配
Patterns and Matching
模式,patterns 属于 Rust 中,用于与不论简单,还是复杂的类型结构体,做匹配的一种特别语法。与 match
表达式及其他一些构件,other constructs,结合使用模式,就会给到咱们对程序控制流程更多的掌控。模式有以下元素的一些组合构成:
-
字面值
-
解构过后的数组、枚举、结构体或元组等,destructured arrays, enums, structs, or tuples
-
变量
-
通配符,wildcards
-
占位符,placeholders
一些示例模式,包括 x
、(a, 3)
及 Some(Color::Red)
等。在模式为有效的语境中,这些组件描述了数据的形状,the shape of data。咱们的程序随后就会将一些值,与这些模式做匹配,来判断其是否有着数据的正确形状,而继续运行代码的某个特定片段。
要运用某个模式,咱们就要将其与某个值比较。在该模式与那个值匹配时,咱们在咱们的代码中,使用这个值的那些部分。回顾第 6 章中用到模式的那些 match
表达式,比如那个硬币分类机器示例。在值满足模式形状时,咱们就可以使用那些命名的代码片段。而在不满足时,与该模式关系的代码就不会运行。
本章时与模式相关全部内容的一个参考。咱们将涵盖运用模式的那些有效位置、可证伪与不可证伪模式的区别,the difference between refutable and irrefutable patterns,以及可能见到的那些不同类别的模式语法。在本章最后,咱们将获悉,如何运用模式来清晰地表达许多概念。