РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
25 of 1245 menu

Замыкание

Замыкание в Rust - это анонимная функция, которую можно сохранить в переменную или передать в другую функцию. В отличие от обычных функций, замыкания могут захватывать значения из окружающей области видимости. Синтаксис замыкания использует вертикальные черты | для параметров и фигурные скобки для тела. Параметрами замыкание принимает значения, которые будут использованы в его теле.

Синтаксис

|параметры| { тело }

Пример

Давайте создадим простое замыкание, которое складывает два числа:

fn main() { let add = |a, b| a + b; let res = add(2, 3); println!("{}", res); }

Результат выполнения кода:

5

Пример

Давайте создадим замыкание, которое захватывает переменную из окружающего контекста:

fn main() { let x = 10; let add_x = |y| x + y; let res = add_x(5); println!("{}", res); }

Результат выполнения кода:

15

Пример

Давайте передадим замыкание в функцию высшего порядка:

fn apply<F: Fn(i32) -> i32>(f: F, value: i32) -> i32 { f(value) } fn main() { let double = |x| x * 2; let res = apply(double, 7); println!("{}", res); }

Результат выполнения кода:

14

Смотрите также

  • ключевое слово move,
    которое перемещает захваченные переменные в замыкание
  • ключевое слово fn,
    которое объявляет обычную функцию
  • ключевое слово let,
    которое связывает значение с переменной
  • ключевое слово return,
    которое возвращает значение из функции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить