Необязательность else в Rust
Конструкция else не является обязательной.
Если ее нет, при ложной проверке программа
просто пропускает блок команд и идет дальше.
Фигурные скобки у единственной ветки все равно
нужны, даже когда в ней одна строка.
В следующем примере текст выведется только
в том случае, если значение переменной равно
1. В противном случае просто ничего
не случится:
let test = 1;
if test == 1 {
println!("Y"); // сработает это
}
Так делают, когда нужно выполнить действие только в одном случае, а при другом ничего делать не требуется. Фигурные скобки у единственной ветки все равно нужны.
Напечатаем предупреждение только при отрицательном балансе:
let balance = -5;
if balance < 0 {
println!("warn");
}
println!("done");
При неотрицательном балансе предупреждение не выводится, но финальная строка печатается всегда:
let balance = 10;
if balance < 0 {
println!("warn");
}
println!("done");
Дано число:
let errors = 2;
При значении больше 0 выведите "fix".
После проверки выведите "end" в любом случае.
Дана переменная:
let ok = true;
При ложном ok выведите "retry".
Вторую ветку не пишите.
Скажите, что произойдет после ложной проверки, если второй ветки нет.
Если переменная test равна 10,
то пусть выведется "Y". В противном
случае пусть ничего не произойдет.