let 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> {
let mut vec = vec;
vec.push(22);
vec.push(44);
vec.push(66);
vec
}
Если vec1 оставить иммутабельным то код после принта не будет работать, я поставил mut и все заработало. Я не понимаю как это работает если по идее принт забирает ownership.
push модифицирует вектор и потому требует, чтобы vec1 был изменяемым. А ты записал, что он неизменяемый
Спасибо! Про пуш, очень очевидно, но я даже не заметил этого. А как па счет функции принт? Она разве не consume ownership?
https://www.reddit.com/r/rust/comments/axgfjo/ownership_rules_when_calling_println_macro/
Обсуждают сегодня