LINUX.ORG.RU

История изменений

Исправление red75prim, (текущая версия) :

Ну я могу написать for p in primes.into_iter() и всё работает, то бишь он как-то автоматом переписывает это в for p in (&mut primes).into_iter(), но без into_iter() не хочет переписывать, это выглядит странно.

По соглашению функции начинающиеся с `into_` поглощают свой аргумент. Так что различающееся поведение для `for p in primes` и `for p in primes.into_iter()` действительно выглядит странно и неожиданно.

Поэтому, если требуется только заимствовать аргумент, делают метод `iter()`: https://play.rust-lang.org/?gist=5c71edee34d34948b3ac413ae7439781&version...

Исходная версия red75prim, :

Ну я могу написать for p in primes.into_iter() и всё работает, то бишь он как-то автоматом переписывает это в for p in (&mut primes).into_iter(), но без into_iter() не хочет переписывать, это выглядит странно.

По соглашению функции начинающиеся с `into_` поглощают свой аргумент. Так что различающееся поведение для `for p in primes` и `for p in primes.into_iter()` - действительно выглядит странно и неожиданно.

Поэтому, если требуется только заимствовать аргумент, делают метод `iter()`: https://play.rust-lang.org/?gist=5c71edee34d34948b3ac413ae7439781&version...