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 и другими конструкциями даёт больше контроля над потоком выполнения программы. Образец состоит из комбинации следующих элементов:

  • Литералов
  • Разобранных (destructured) массивов, перечислений, структур или кортежей
  • Переменных
  • Шаблонов wildcard (любое значение)
  • Заполнителей (placeholders)

Примеры образцов: x, (a, 3), Some(Color::Red). В контекстах, где образцы допустимы, эти компоненты описывают форму данных. Затем программа сопоставляет значения с образцами, чтобы определить, соответствуют ли данные требуемой форме для продолжения выполнения конкретного фрагмента кода.

Чтобы использовать образец, мы сравниваем его с некоторым значением. Если образец совпадает со значением, мы используем части значения в своём коде. Вспомните выражения match из Главы 6, которые использовали образцы, например, пример с сортировкой монет. Если значение соответствует форме образца, мы можем использовать именованные части. Если нет — код, связанный с этим образцом, не выполнится.

Эта глава является справочником по всем вопросам, связанным с образцами. Мы рассмотрим допустимые места для использования образцов, разницу между опровержимыми (refutable) и неопровержимыми (irrefutable) образцами, а также различные виды синтаксиса образцов, которые вы можете встретить. К концу главы вы будете знать, как использовать образцы для ясного выражения многих концепций.