Перелічувані типи

Як і кортежі, переліки також можуть бути деструктуровані шляхом зіставлення:

Шаблони також можна використовувати для прив’язки змінних до частин ваших значень. Таким чином ви перевіряєте структуру ваших типів. Давайте розпочнемо з простого типу enum:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Тут ми використали гілки для деструктурування значення Result. У першій гілці half прив’язано до значення всередині варіанту Ok. У другій гілці msg прив’язано до повідомлення про помилку.

Speaker Notes

This slide should take about 4 minutes.
  • Вираз if/else повертає перелік, який пізніше розпаковується за допомогою match.
  • Ви можете спробувати додати третій варіант до визначення переліку і відобразити помилки під час виконання коду. Вкажіть місця, де ваш код зараз є невичерпним, і як компілятор намагається дати вам підказки.
  • Доступ до значень у варіантах переліку можливий лише після зіставлення з шаблоном.
  • Продемонструйте, що відбувається, коли пошук є невичерпним. Зверніть увагу на перевагу, яку надає компілятор Rust, підтверджуючи що всі випадки оброблено.