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

Захват переменной замыканием в Rust

Замыкание может читать переменную, объявленную выше в той же области. Такое чтение называют захватом окружения: короткая функция использует значение, которое уже лежит снаружи.

Для простого числа тело умножает аргумент на внешний множитель, а снаружи переменная остается на месте:

let factor = 3; let scale = |n: i32| n * factor; println!("{}", scale(4)); println!("{}", factor);

На экране 12 и снова 3. После вызова имя factor по-прежнему доступно, потому что замыкание не забирало владение числом. Текст снаружи читают через ссылку, пока не попросят перенос:

let label = "ok"; let check = |text: &str| text == label; println!("{}", check("ok"));

Дано число:

let offset = 10;

Объявите shift с одним i32, которое прибавляет offset к аргументу, и выведите результат для 5.

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

let min = 2; let max = 8;

Запишите in_range с параметром i32, которое проверяет, что значение не меньше min и не больше max, и выведите результат для 5.

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

let base = 1; let add_base = |n: i32| n + base; let sum = add_base(4);

Скажите, какое число окажется в sum.

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