Метод get_mut
Метод get_mut возвращает изменяемую ссылку
на элемент вектора по указанному индексу.
Он возвращает Some(&mut T), если элемент
существует, и None в противном случае.
Параметром метод принимает индекс элемента,
на который нужно получить изменяемую ссылку.
В отличие от метода get, который возвращает
неизменяемую ссылку, get_mut позволяет
изменять значение элемента вектора.
Синтаксис
vec.get_mut(index)
Пример
Давайте получим изменяемую ссылку на элемент
вектора с индексом 2 и изменим его значение:
fn main()
{
let mut v = vec![1, 2, 3, 4, 5];
if let Some(elem) = v.get_mut(2) {
*elem = 30;
}
println!("{:?}", v);
}
Результат выполнения кода:
[1, 2, 30, 4, 5]
Пример
Давайте попробуем получить изменяемую ссылку
на элемент с индексом 10, которого нет в векторе:
fn main()
{
let mut v = vec![1, 2, 3, 4, 5];
let res = v.get_mut(10);
println!("{:?}", res);
}
Результат выполнения кода:
None
Пример
Давайте получим изменяемую ссылку на первый элемент вектора и изменим его значение:
fn main()
{
let mut v = vec!["a", "b", "c", "d", "e"];
if let Some(elem) = v.get_mut(0) {
*elem = "z";
}
println!("{:?}", v);
}
Результат выполнения кода:
["z", "b", "c", "d", "e"]