Глава 19
Паттерны и сопоставление
Паттерны — это специальный синтаксис в Rust для сопоставления со структурой типов, как сложных, так и простых. Использование паттернов вместе с выражениями match и другими конструкциями даёт вам больше контроля над потоком управления программы. Паттерн состоит из комбинации следующих элементов:
- Литералы
- Деструктурированные массивы, перечисления, структуры или кортежи
- Переменные
- Подстановочные знаки (wildcards)
- Заполнители (placeholders)
Некоторые примеры паттернов включают x, (a, 3) и Some(Color::Red). В контекстах, где паттерны допустимы, эти компоненты описышают форму данных. Затем наша программа сопоставляет значения с паттернами, чтобы определить, соответствуют ли данные требуемой форме для продолжения выполнения определённого фрагмента кода.
Чтобы использовать паттерн, мы сравниваем его с некоторым значением. Если паттерн совпадает со значением, мы используем части этого значения в нашем коде. Вспомните выражения match из главы 6, которые использовали паттерны, такие как пример с машиной для сортировки монет. Если значение соответствует форме паттерна, мы можем использовать именованные части. Если нет, код, связанный с паттерном, не выполнится.
Эта глава является справочником по всему, что связано с паттернами. Мы рассмотрим допустимые места для использования паттернов, разницу между опровержимыми и неопровержимыми паттернами и различные виды синтаксиса паттернов, которые вы можете встретить. К концу главы вы будете знать, как использовать паттерны для ясного выражения множества концепций.