Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Rust: iter, into_iter, borrowing, ownership

В чем различие между .iter() и .into_iter() в Rust?

Этот вопрос проверяет понимание различий между двумя методами итераторов Rust — .iter() и .into_iter(), которые используются для перебора коллекций.

Короткий ответ

.iter() создает итератор, который заимствует элементы коллекции, не забирая их. .into_iter() забирает владение коллекцией и перемещает элементы из неё.

Длинный ответ

В Rust .iter() и .into_iter() используются для создания итераторов, но их поведение различается в плане владения и заимствования данных:

.iter()

  • Создаёт итератор, который заимствует элементы коллекции.

  • Элементы коллекции остаются доступными для дальнейшего использования после итерации.

  • Подходит, когда нужно читать данные из коллекции, но не требуется её изменять или забирать данные.

  • Пример:

let nums = vec![1, 2, 3];
let iter = nums.iter();
for &num in iter {
    	println!("{}", num);  // Выводит 1, 2, 3
}

.into_iter():

  • Перемещает элементы коллекции, т.е. забирает владение над коллекцией и её элементами.

  • После использования .into_iter() коллекция больше не доступна, так как владение ею было передано итератору.

  • Полезно, когда не нужно больше использовать коллекцию после того, как элементы из неё были перемещены.

  • Пример:

let nums = vec![1, 2, 3];
let iter = nums.into_iter();
for num in iter {
    	println!("{}", num);  // Выводит 1, 2, 3
}
// nums больше не доступен здесь

Используйте .iter() для заимствования элементов коллекции и .into_iter() для перемещения данных из коллекции, когда она больше не нужна.

  • Аватар

    Rust Guru

    Eduard Paul

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Rust

    Rust

Ключевые слова

#iter

#into_iter

#borrowing

#ownership

Подпишись на Rust Developer в телеграм

  • Аватар

    Rust Guru

    Eduard Paul

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.