Warum werden geschachtelte Iterator-Closures keine Werte aus dem äußeren Gültigkeitsbereich kopieren?

Ich versuche, verschachtelte Iteratoren zu verwenden, wobei der innere Iterator den Wert des äußeren Iterators verwendet.

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

Error:a lebt nicht lange genug

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

note: Referenz muss für den Methodenaufruf gültig sein ...

Dies wird kompiliert, wenn ich den inneren Verschluss bewege move |b|{), aber ich verstehe nicht, warum es notwendig ist, daa ist eine Ganzzahl und hätte kopiert statt verschoben werden können.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage