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