Почему вложенные закрытия итераторов не будут копировать значения из внешней области видимости

Я пытаюсь использовать вложенные итераторы, где внутренний итератор использует значение из внешнего итератора.

vec![0;10].iter().flat_map(|&a| {
    (0..10).map(|b|{
        a + b
    })
});

ошибка:a не живет достаточно долго

    (0..10).map(|b|{
                ^^^

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

Это компилируется, если я переместить внутреннее закрытие (move |b|{), но я не понимаю, зачем это нужно, учитывая, чтоa является целым числом и мог быть скопирован, а не перемещен.

Ответы на вопрос(1)

Ваш ответ на вопрос