Метод as_slice
Метод as_slice возвращает срез &[T],
содержащий все элементы вектора. Метод не принимает
параметров. Срез предоставляет доступ к элементам
вектора только для чтения, при этом сам вектор
остаётся неизменным. Это удобно, когда нужно передать
данные вектора в функцию, которая ожидает срез,
а не владеющий вектор.
Синтаксис
vec.as_slice()
Пример
Давайте получим срез из вектора и выведем его элементы на экран:
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
let slice = vec.as_slice();
println!("{:?}", slice);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте передадим срез вектора в функцию, принимающую срез:
fn sum(slice: &[i32]) -> i32
{
let mut res = 0;
for item in slice
{
res += item;
}
res
}
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
let res = sum(vec.as_slice());
println!("{}", res);
}
Результат выполнения кода:
15
Пример
Давайте получим срез из вектора строк и выведем его длину:
fn main()
{
let vec = vec!["a", "b", "c", "d", "e"];
let slice = vec.as_slice();
println!("{}", slice.len());
}
Результат выполнения кода:
5
Смотрите также
-
метод
as_mut_slice,
который возвращает изменяемый срез элементов вектора -
метод
get,
который возвращает ссылку на элемент вектора по индексу -
метод
len,
который возвращает количество элементов в векторе -
метод
is_empty,
который проверяет, пуст ли вектор