Указатель &mut T
Указатель &mut T - это тип изменяемой ссылки в Rust.
Он позволяет получить доступ к значению и изменить его,
не забирая владение. При этом в один момент времени
может существовать только одна изменяемая ссылка на
конкретное значение - это правило проверяется компилятором.
Параметром тип принимает тип T, на который
будет указывать ссылка.
Синтаксис
&mut T
Пример
Давайте создадим изменяемую ссылку на переменную и изменим её значение через эту ссылку:
fn main()
{
let mut x = 5;
let r: &mut i32 = &mut x;
*r = 10;
println!("{}", x);
}
Результат выполнения кода:
10
Пример
Давайте передадим изменяемую ссылку в функцию, которая увеличит значение на единицу:
fn increment(value: &mut i32)
{
*value += 1;
}
fn main()
{
let mut x = 5;
increment(&mut x);
println!("{}", x);
}
Результат выполнения кода:
6
Пример
Давайте изменим элемент вектора через изменяемую ссылку:
fn main()
{
let mut v = vec![1, 2, 3, 4, 5];
let r: &mut i32 = &mut v[2];
*r = 100;
println!("{:?}", v);
}
Результат выполнения кода:
[1, 2, 100, 4, 5]
Смотрите также
-
тип
reference,
который представляет неизменяемую ссылку &T -
тип
const-pointer,
который представляет сырой указатель *const T -
тип
mut-pointer,
который представляет сырой изменяемый указатель *mut T -
тип
usize,
который часто используется для индексов и размеров