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.