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

<p id="Смотрите_также_14"><strong><a l:href="#Смотрите_также_14">Смотрите также:</a></strong></p>

Итераторы (Iterator)

<p id="match"><strong><a l:href="#match">match</a></strong></p>

Rust предоставляет ключевое слово match, которое используется для проверки на соответствие шаблону. match можно использовать как switch в языке C.

fn main() {

let number = 13;

// ЗАДАНИЕ ^ Попробуйте присвоить `number` другое значение

println!("Tell me about {}", number);

match number {

// Сопоставление с одним значением

1 => println!("One!"),

// Сопоставление с несколькими значениями

2 | 3 | 5 | 7 | 11 => println!("This is a prime"),

// Сопоставление с диапазоном значений

13..=19 => println!("A teen"),

// Обработка остальных случаев

_ => println!("Ain't special"),

}

let boolean = true;

// Match так же является выражением

let binary = match boolean {

// Ветви match должны обработать все возможные значения переменной

false => 0,

true => 1,

// ЗАДАНИЕ ^ Попробуйте закомментировать эту ветвь

};

println!("{} -> {}", boolean, binary);

}

הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

<p id="Деструктуризация"><strong><a l:href="#Деструктуризация">Деструктуризация</a></strong></p>

Блок match может деструктурировать элементы в различных формах.

   • Перечисления

   • Указатели

   • Структуры

   • Кортежи

<p id="Кортежи_1"><strong><a l:href="#Кортежи_1">Кортежи</a></strong></p>

Кортежи можно деструктурировать с помощью match следующим образом:

fn main() {

let pair = (0, -2);

// ЗАДАНИЕ ^ Попробуйте другие значения для `pair`

println!("Tell me about {:?}", pair);

// Match можно использовать для деструктуризации кортежей

match pair {

// Деструктурируем два значения

(0, y) => println!("Первое значение `0`, а `y` равно `{:?}`", y),

(x, 0) => println!("`x` равно `{:?}`, а второе значение `0`", x),

_ => println!("Неважно, какого они значения"),

// `_` означает, что значение не будет связано с переменной

}

}

הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

<p id="Смотрите_также_15"><strong><a l:href="#Смотрите_также_15">Смотрите также:</a></strong></p>

Tuples

Перейти на страницу:

Похожие книги