Перейти до вмісту
Помилки компілятора RustПомилка
E0373

E0373 — Замикання може пережити захоплену змінну

Замикання захоплює посилання на змінну, яка може не прожити достатньо довго.

rustcargo

Що спричиняє цю помилку

Замикання позичає локальну змінну, але саме замикання може пережити область видимості цієї змінної. Це часто трапляється під час передачі замикань потокам або збереження їх у структурах.

Як виправити

Використайте ключове слово move для передачі власності: move || { ... }. Клонуйте змінну перед замиканням, якщо потрібен оригінал. Переконайтеся, що захоплені дані живуть достатньо довго для часу існування замикання.

Офіційна документація

Пов'язані коди помилок