Я выполняю упражнения Шатание , и есть упражнение "move_semantics3.rs":
// move_semantics3.rs
// Make me compile without adding new lines-- just changing existing lines!
// (no lines with multiple semicolons necessary!)
// Scroll down for hints :)
pub fn main() {
let vec0 = Vec::new();
let mut vec1 = fill_vec(vec0);
println!("{} has length {} content `{:?}`", "vec1", vec1.len(), vec1);
vec1.push(88);
println!("{} has length {} content `{:?}`", "vec1", vec1.len(), vec1);
}
fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
vec.push(22);
vec.push(44);
vec.push(66);
vec
}
Подсказка говорит:
Разницамежду этим и предыдущими находится то, что первой строки fn fill_vec
, в которой было let mut vec = vec;
, больше нет.Вы можете вместо добавления этой строки добавить mut
в одном месте, которое изменит существующую привязку на изменяемую, а не на неизменяемую:)
Я понятия не имею, какисправьте этот код, добавив только один mut
.