Конструкция match в Rust | OTUS

Конструкция match в Rust

В языке программирования Rust существует специальная конструкция match. Она служит для оценки какого-нибудь выражения путем сравнения этого выражения с набором значений. В случае совпадения значений выполняется определенный код.

Формально конструкция match определяется следующим образом:

1-1801-226a29.png

После оператора match указывают сравниваемое выражение, к примеру, переменная. Потом идет перечисление тех значений, с которыми надо сравнивать.

После оператора => после каждого значения следуют действия, которые будут выполняться в том случае, если значения будут соответствовать сравниваемому выражению.

В самом конце, то есть после всех значений, указывают универсальное значение _. Его действия выполнятся, когда ни одно из значений не будет соответствовать сравниваемому выражению.

Рассмотрим пример:

2-1801-d6625d.png

Мы видим, что в нашей match-конструкции происходит последовательное сравнение значения переменной num со значениями 1, 2, 3. Так как num равняется 2, переменная соответствует одному из искомых значений.

3-1801-f6b7ec.png

В результате на консоль выведется строка "два".

Можно рассмотреть и другую ситуацию:

4-1801-6203af.png

В этой конструкции значение переменной num не совпадает ни с одним из значений в нашей match-конструкции, таким образом, будет применяться следующий код:

5-1801-2cbb60.png

На практике конструкция match способна и возвращать значение. В такой ситуации у нас есть возможность присвоить это значение переменной:

6-1801-3fe5a0.png

В коде выше результат конструкции match присваивается соответствующей переменной, которая называется result. При этом возвращаемые значения указаны после оператора =>. В нашем примере речь идет о строках "один", "два", "три" и "непонятно". А так как переменная num равняется 3, то и конструкция match возвратит нам строку "три".

По материалам https://metanit.com/rust/tutorial/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
Запланируй обучение с выгодой!
Получи скидку 10% на все курсы ноября и декабря до 17.11 →