Какая функция конвертирует итератор в Vec в Rust?
Этот вопрос проверяет знание того, как в Rust можно собрать все элементы из итератора в вектор (Vec).
Короткий ответ
Для конвертации итератора в Vec используется функция .collect().
Длинный ответ
Функция .collect() является универсальным способом сбора элементов из итератора в контейнер. В случае с вектором (Vec), она преобразует все элементы итератора в новый вектор.
Метод .collect():
- Работает с любым итератором и собирает его элементы в указанный контейнер.
- Для вектора необходимо указать тип контейнера: Vec<_>.
- Пример:
let nums = vec![1, 2, 3];
let doubled: Vec<i32> = nums.iter().map(|n| n * 2).collect();
println!("{:?}", doubled); // [2, 4, 6]
Особенности:
- .collect() работает только с типами, которые реализуют трейты FromIterator и IntoIterator, что делает её универсальной для большинства коллекций.
- Можно собрать элементы итератора в различные типы данных, включая вектор, хэш-карту и другие.
Метод .collect() является удобным способом преобразования итератора в коллекцию в Rust. Это позволяет собирать данные в удобный контейнер, такой как вектор.