match — это оператор потока управления в Rust, который используется для передачи управления определенному блоку кода на основе значение проверяемой переменной. Этот оператор является эквивалентом оператора switch в таких языках, как C ++, JavaScript и Java.
Оператор match
принимает переменную и сравнивает ее значение с каждым значением case. Если есть совпадение, выполняется соответствующий блок кода.
Код
Пример 1
Предположим, вы хотите отобразить сезон, соответствующий заданному входу. Взгляните на приведенный ниже код, чтобы увидеть, как в этой ситуации может пригодиться оператор match
..
fn main () {пусть input = 2; match input {//Если вход 0, вывести Summer 0 => println! ("Лето"),//Если вход 1, вывести Winter 1 => println! ("Зима"),//Если вход равно 2, выведите Осень 2 => println! ("Осень"),//Если введено 3, выведите Spring 3 => println! ("Весна"),//Если ввод не соответствует 0, 1, 2 или 3, print//неверный ввод _ => println! ("Invalid input")}}
Пример 2
В match
несколько элементов могут быть сопоставлены с одним оператором:
fn main () {let input = 4 ; match input {//Если вход 0, вывести Summer 0 => println! ("Лето"),//Если вход 1, вывести Winter 1 => println! ("Зима"),//Если вход равно 2, выведите Осень 2 => println! ("Осень"),//Если введено 3 или 4, выведите Spring 3 | 4 => println! ("Spring"),//Если ввод не соответствует 0, 1, 2, 3 или 4, print//недопустимый ввод _ => println! ("Invalid input")}}
Пример 3
Следующий код показывает как вы можете сопоставить диапазоны:
fn main () {let input = 19; match input {//Если вход 0, вывести Summer 0 => println! ("Лето"),//Если вход 1, вывести Winter 1 => println! ("Зима"),//Если вход находится между 2 и 20 (оба включительно), выведите Осень 2 ... 20 => println! ("Осень"),//Если введено 21, выведите Spring 21 => println! ("Весна"),// Если ввод не находится между 0 и 21 (оба включительно), print//недопустимый ввод _ => println! ("Недопустимый ввод")}}
Помните,
match
не ограничивается числовыми типами данных. Также можно использовать другие типы данных, такие как строковые и логические.. Дополнительные сведения см. В официальной документации.