Изменяемая ссылка на вектор в Rust
Давайте теперь будем менять вектор через параметр. Изменяемая
ссылка помечается &mut. Через нее можно дописать элемент,
а список останется в той же переменной снаружи.
Допишем число в конец через изменяемую ссылку:
fn func(v: &mut Vec<i32>) {
v.push(99);
}
fn main() {
let mut nums = vec![1, 2];
func(&mut nums);
println!("{}", nums[2]);
}
На экране 99. Длина списка выросла в исходной переменной.
Тот же прием для очистки и новой записи:
fn func(v: &mut Vec<i32>) {
v.clear();
v.push(0);
}
fn main() {
let mut data = vec![5, 6];
func(&mut data);
println!("{}", data.len());
}
Дан вектор:
let mut row = vec![3];
Напишите блок func с изменяемой ссылкой, который дописывает
7, и выведите последний элемент.
Дан следующий код:
fn main() {
let mut list = vec![1, 2, 3];
func(&mut list);
println!("{}", list[3]);
}
Допишите func с &mut Vec<i32> и допиской 4
.
Скажите, почему переменная снаружи должна быть объявлена с
mut.