0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: rust, конструкция match</p>
1
<p>Теги: rust, конструкция match</p>
2
<p>В языке программирования Rust существует специальная конструкция match. Она служит для оценки какого-нибудь выражения путем сравнения этого выражения с набором значений. В случае совпадения значений выполняется определенный код.</p>
2
<p>В языке программирования Rust существует специальная конструкция match. Она служит для оценки какого-нибудь выражения путем сравнения этого выражения с набором значений. В случае совпадения значений выполняется определенный код.</p>
3
<p>Формально конструкция match определяется следующим образом:</p>
3
<p>Формально конструкция match определяется следующим образом:</p>
4
<p>После оператора match указывают сравниваемое выражение, к примеру, переменная. Потом идет перечисление тех значений, с которыми надо сравнивать.</p>
4
<p>После оператора match указывают сравниваемое выражение, к примеру, переменная. Потом идет перечисление тех значений, с которыми надо сравнивать.</p>
5
<p>После оператора => после каждого значения следуют действия, которые будут выполняться в том случае, если значения будут соответствовать сравниваемому выражению.</p>
5
<p>После оператора => после каждого значения следуют действия, которые будут выполняться в том случае, если значения будут соответствовать сравниваемому выражению.</p>
6
<p>В самом конце, то есть после всех значений, указывают универсальное значение _. Его действия выполнятся, когда ни одно из значений не будет соответствовать сравниваемому выражению.</p>
6
<p>В самом конце, то есть после всех значений, указывают универсальное значение _. Его действия выполнятся, когда ни одно из значений не будет соответствовать сравниваемому выражению.</p>
7
<p>Рассмотрим пример:</p>
7
<p>Рассмотрим пример:</p>
8
<p>Мы видим, что в нашей match-конструкции происходит последовательное сравнение значения переменной num со значениями 1, 2, 3. Так как num равняется 2, переменная соответствует одному из искомых значений.</p>
8
<p>Мы видим, что в нашей match-конструкции происходит последовательное сравнение значения переменной num со значениями 1, 2, 3. Так как num равняется 2, переменная соответствует одному из искомых значений.</p>
9
<p>В результате на консоль выведется строка "два".</p>
9
<p>В результате на консоль выведется строка "два".</p>
10
<p>Можно рассмотреть и другую ситуацию:</p>
10
<p>Можно рассмотреть и другую ситуацию:</p>
11
<p>В этой конструкции значение переменной num не совпадает ни с одним из значений в нашей match-конструкции, таким образом, будет применяться следующий код:</p>
11
<p>В этой конструкции значение переменной num не совпадает ни с одним из значений в нашей match-конструкции, таким образом, будет применяться следующий код:</p>
12
<p>На практике конструкция match способна и возвращать значение. В такой ситуации у нас есть возможность присвоить это значение переменной:</p>
12
<p>На практике конструкция match способна и возвращать значение. В такой ситуации у нас есть возможность присвоить это значение переменной:</p>
13
<p>В коде выше результат конструкции<strong>match</strong>присваивается соответствующей переменной, которая называется<strong>result</strong>. При этом возвращаемые значения указаны после оператора =>. В нашем примере речь идет о строках "один", "два", "три" и "непонятно". А так как переменная num равняется 3, то и конструкция match возвратит нам строку "три".</p>
13
<p>В коде выше результат конструкции<strong>match</strong>присваивается соответствующей переменной, которая называется<strong>result</strong>. При этом возвращаемые значения указаны после оператора =>. В нашем примере речь идет о строках "один", "два", "три" и "непонятно". А так как переменная num равняется 3, то и конструкция match возвратит нам строку "три".</p>
14
<p><em>По материалам https://metanit.com/rust/tutorial/.</em></p>
14
<p><em>По материалам https://metanit.com/rust/tutorial/.</em></p>
15
15