Как у вас есть for
... in
loop заимствует итератор, над которым он работает? Например:Как можно занять итератор за цикл?
let x = vec![1, 2, 3, 4];
let i = x.iter();
for a1 in i { break; } // iterate over just one "i"
for a2 in i { break; } // continue iterating through "i" here
Вы не можете просто дать &i
в ФОР, потому что тогда он не может преобразовать &Iterator
к Iterator
объекта.
Это хороший ответ, b ut оно терпит неудачу если вы хотите иметь (даже non-mutable) вложенные итераторы на 'i'. – njaard