Замыкание, также известное как анонимная функция или лямбда-выражение, является функцией, определенной в контексте его использования. Они позволяют определять функции в пределах области действия другой функции и могут захватывать переменные из их окружающей области действия. В Rust замыкания определяются с помощью пары вертикальных черт (`| |`), которые действуют как скобки функции. Между этими символами задаются аргументы функции, за которыми следует блок кода, составляющий тело функции. Рассмотрим основной пример: Здесь `add_one` является замыканием, которое принимает один аргумент, `x`, и возвращает `x + 1`. Сильной особенностью замыканий является их способность захватывать переменные из окружающей среды, обычно называемая upvar capturing. Переменные могут быть зафиксированы тремя способами: Rust попытается сделать вывод о наименее ограничительном выборе на основе того, как вы используете переменные в замыкании. Давайте продемонстрируем следующее: В этом примере заимствование захват