Метод leak
Метод leak класса Vec возвращает изменяемый срез &mut [T]
элементов вектора. При этом вектор потребляется, а его память
намеренно утекает: она больше не освобождается автоматически,
даже когда возвращённый срез выйдет из области видимости.
Метод не принимает параметров и используется в тех случаях,
когда элементы должны жить в течение всей программы.
Синтаксис
vec.leak()
Пример
Давайте создадим вектор и получим изменяемый срез
через метод leak:
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
let slice = vec.leak();
println!("{:?}", slice);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте изменим элементы утёкшего среза:
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
let slice = vec.leak();
slice[0] = 10;
slice[1] = 20;
println!("{:?}", slice);
}
Результат выполнения кода:
[10, 20, 3, 4, 5]
Смотрите также
-
класс
Vec,
который представляет динамический массив -
метод
into_boxed_slice,
который преобразует вектор в boxed-срез -
метод
as_slice,
который возвращает срез элементов вектора -
метод
as_mut_slice,
который возвращает изменяемый срез элементов вектора