Метод iter_mut
Метод iter_mut возвращает итератор по изменяемым ссылкам на элементы среза.
Это позволяет изменять значения элементов прямо во время итерации.
Метод не принимает параметров и возвращает объект IterMut.
Для использования метода сам срез должен быть объявлен как изменяемый.
Синтаксис
slice.iter_mut()
Пример
Давайте увеличим каждый элемент среза на 1:
fn main()
{
let mut arr = [1, 2, 3, 4, 5];
for x in arr.iter_mut() {
*x += 1;
}
println!("{:?}", arr);
}
Результат выполнения кода:
[2, 3, 4, 5, 6]
Пример
Давайте заменим все элементы среза на их квадраты:
fn main()
{
let mut arr = [1, 2, 3, 4, 5];
for x in arr.iter_mut() {
*x = *x * *x;
}
println!("{:?}", arr);
}
Результат выполнения кода:
[1, 4, 9, 16, 25]
Пример
Давайте изменим элементы среза строк, добавив к каждой строке восклицательный знак:
fn main()
{
let mut arr = ["abcde", "12345", "hello"];
for x in arr.iter_mut() {
*x = "changed";
}
println!("{:?}", arr);
}
Результат выполнения кода:
["changed", "changed", "changed"]