В этой главе курса по Rust мы изучаем, как управлять потоком выполнения программы. Вы узнаете, как работают конструкции if, else, оператор match для сопоставления с образцом, а также циклы loop, while и for. Всё сопровождается понятными примерами кода и объяснениями. 🚀
Оператор if позволяет выполнять код в зависимости от условия:
let number = 7;
if number < 10 {
println!("Меньше 10");
} else {
println!("10 или больше");
}
Условия должны быть типа bool. Нельзя писать if number как в некоторых других языках — это часть строгой типизации Rust, которая помогает избежать логических ошибок и делает поведение программы предсказуемым:
if number { // Ошибка!
Также можно использовать if как выражение:
let condition = true;
let value = if condition { 5 } else { 10 };
println!("{}", value); // 5
match
match — мощный инструмент сопоставления с образцом, аналог switch в других языках, но более гибкий. Особенно хорошо работает с перечислениями (enum):
enum Direction {
Up,
Down,
Left,
Right,
}
let dir = Direction::Left;
match dir {
Direction::Up => println!("Вверх"),
Direction::Down => println!("Вниз"),
Direction::Left => println!("Влево"),
Direction::Right => println!("Вправо"),
}
let number = 3;
match number {
1 => println!("Один"),
2 | 3 => println!("Два или три"),
4..=6 => println!("От 4 до 6"),
_ => println!("Что-то другое"), // `_` — это подстановочный шаблон (wildcard)
}
Циклы
loop
Бесконечный цикл:
loop {
println!("Цикл!");
break; // иначе будет бесконечно
}
loop — единственный цикл в Rust, из которого можно напрямую возвращать значение:
let result = loop {
break 42;
};
println!("{}", result); // 42
while
Цикл с условием:
let mut number = 3;
while number != 0 {
println!("{}", number);
number -= 1;
}
for
Цикл по диапазону или коллекции:
for i in 1..=5 { // `..=` включает верхнюю границу диапазона
println!("{}", i);
}
let arr = [10, 20, 30];
for val in arr {
println!("{}", val);
}
Итоги
🔹 if и else позволяют выполнять код в зависимости от условий. 🔹 match — мощная альтернатива switch, поддерживает диапазоны, шаблоны и переменные. 🔹 loop, while и for позволяют выполнять повторяющийся код разными способами.
В следующей главе мы рассмотрим функции и область видимости переменных. 🚀
В этой главе курса по Rust мы разбираем базовые типы данных: числа с разной знаковостью и размером, строки String и &str, булевы значения, кортежи и массивы. Показаны практические примеры использования и поясняется, когда и как применять эти типы в коде. 🚀
Во второй главе курса по Rust мы рассмотрим структуру программы, разберём процесс компиляции и запуска кода. Также познакомимся с Cargo — мощным инструментом для управления проектами на Rust. Узнаем, как создавать, собирать и запускать проекты с его помощью. 🚀
В первой главе курса по Rust мы рассмотрим основные особенности языка, его преимущества и недостатки, а также сферы применения. Подробно разберём процесс установки Rust на различные операционные системы. Если вы только начинаете изучать Rust, этот материал поможет вам разобраться в основах и сделать первый шаг в программировании на Rust. 🚀