Метод to_vec
Метод to_vec создаёт новый вектор Vec,
копируя в него все элементы среза. Метод не принимает
параметров и возвращает новый вектор, содержащий копии
всех элементов исходного среза. Исходный срез при этом
не изменяется. Тип элементов вектора должен реализовывать
типаж Clone.
Синтаксис
slice.to_vec()
Пример
Давайте создадим срез из массива и преобразуем его
в вектор с помощью метода to_vec:
fn main()
{
let arr = [1, 2, 3, 4, 5];
let slice = &arr[1..4];
let res = slice.to_vec();
println!("{:?}", res);
}
Результат выполнения кода:
[2, 3, 4]
Пример
Давайте преобразуем весь массив в вектор через полный срез:
fn main()
{
let arr = [1, 2, 3, 4, 5];
let res = arr[..].to_vec();
println!("{:?}", res);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте преобразуем срез строк в вектор строк:
fn main()
{
let arr = ["a", "b", "c", "d", "e"];
let slice = &arr[0..3];
let res = slice.to_vec();
println!("{:?}", res);
}
Результат выполнения кода:
["a", "b", "c"]
Пример
Давайте убедимся, что исходный массив не изменяется
после вызова метода to_vec:
fn main()
{
let arr = [1, 2, 3, 4, 5];
let mut res = arr[..].to_vec();
res.push(6);
println!("{:?}", arr);
println!("{:?}", res);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]