Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmCdIX 76 of 373 menu
◀ ▶

Конструкция if со значением в Rust

В Rust проверка может не только запускать команды, но и отдавать значение. Такую запись используют справа от знака равенства при объявлении переменной. Обе ветки должны давать результат одного типа.

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

Запишем метку по знаку числа:

let n = 5; let label = if n > 0 { "plus" } else { "minus" }; println!("{}", label);

При отрицательном числе в переменной окажется другая фраза:

let n = -2; let label = if n > 0 { "plus" } else { "minus" }; println!("{}", label);

Пусть нужно запомнить, исполнилось ли уже 18 лет. Длинная запись только кладет ответ в переменную:

let age = 17; let mut adult = false; if age >= 18 { adult = true; } else { adult = false; } println!("{}", adult); // выведет false

Ту же запись короче отдает само условие:

let age = 17; let adult = if age >= 18 { true } else { false }; println!("{}", adult); // выведет false

Когда обе ветки - это true и false, хватает самого сравнения:

let age = 17; let adult = age >= 18; println!("{}", adult); // выведет false

Дано число:

let score = 100;

Запишите в tag фразу "full" или "part" по сравнению с 100. Выведите tag.

Дана переменная:

let ok = true;

Запишите в word "yes" или "no" по значению ok. Выведите word.

Скажите, почему в ветках выражения нельзя заканчивать точкой с запятой, если результат идет в переменную.

Дано число:

let num = -3;

Запишите в res число 1, если num больше или равно нулю, и число -1, если num меньше нуля.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить