Метод collect
Метод collect преобразует итератор в
конечную коллекцию. Он принимает все элементы
итератора и собирает их в указанный тип.
Параметром метод не принимает ничего, однако
требует явного указания типа коллекции через
аннотацию типа или турборыж. Метод часто
используется в конце цепочек итераторов для
получения конкретного контейнера.
Синтаксис
iterator.collect::<Collection>()
Пример
Давайте соберем элементы итератора в вектор:
fn main()
{
let res: Vec<i32> = vec![1, 2, 3, 4, 5]
.into_iter()
.collect();
println!("{:?}", res);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте соберем символы строки в вектор:
fn main()
{
let res: Vec<char> = "abcde".chars().collect();
println!("{:?}", res);
}
Результат выполнения кода:
['a', 'b', 'c', 'd', 'e']
Пример
Давайте соберем элементы итератора в строку:
fn main()
{
let res: String = vec!["a", "b", "c"]
.into_iter()
.collect();
println!("{}", res);
}
Результат выполнения кода:
"abc"
Пример
Давайте используем метод вместе с map
для преобразования элементов:
fn main()
{
let res: Vec<i32> = vec![1, 2, 3, 4, 5]
.into_iter()
.map(|x| x * 2)
.collect();
println!("{:?}", res);
}
Результат выполнения кода:
[2, 4, 6, 8, 10]