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

Результат замыкания в Rust

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

Короткое тело из одного выражения пишут сразу после черт:

let max = |a: i32, b: i32| if a > b { a } else { b }; println!("{}", max(3, 7));

Точка с запятой после последнего выражения в скобках превращает его в команду без значения. Тогда у замыкания нет результата, и такой код не собирается, если тип ждут число:

let broken = |n: i32| { n + 1; };

Запишите abs_diff с двумя параметрами i32, которое возвращает модуль разности, и выведите результат для 2 и 5.

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

let low = 1; let high = 9;

Объявите mid, которое возвращает среднее двух аргументов как целое деление суммы на 2, и выведите результат для low и high.

Дан следующий код:

let unit = |n: i32| { println!("{}", n); n };

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

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