Почему вложенные закрытия итераторов не будут копировать значения из внешней области видимости
Я пытаюсь использовать вложенные итераторы, где внутренний итератор использует значение из внешнего итератора.
vec![0;10].iter().flat_map(|&a| {
(0..10).map(|b|{
a + b
})
});
ошибка:a
не живет достаточно долго
(0..10).map(|b|{
^^^
примечание: ссылка должна быть действительной для вызова метода ...
Это компилируется, если я переместить внутреннее закрытие (move |b|{
), но я не понимаю, зачем это нужно, учитывая, чтоa
является целым числом и мог быть скопирован, а не перемещен.