rustlings/exercises/move_semantics/move_semantics2.rs
Dominic London 0a124c2995 Merge branch 'main' into dev
- Solve if3.rs
2024-01-07 22:23:11 +00:00

32 lines
705 B
Rust

// move_semantics2.rs
//
// Expected output:
// vec0 has length 3, with contents `[22, 44, 66]`
// vec1 has length 4, with contents `[22, 44, 66, 88]`
//
// Execute `rustlings hint move_semantics2` or use the `hint` watch subcommand
// for a hint.
fn main() {
let mut vec0 = Vec::new();
// Do not move the following line!
let mut vec1 = fill_vec(&mut vec0);
println!("{} has length {}, with contents: `{:?}`", "vec0", vec0.len(), vec0);
vec1.push(88);
println!("{} has length {}, with contents `{:?}`", "vec1", vec1.len(), vec1);
}
fn fill_vec(vec: &mut Vec<i32>) -> Vec<i32> {
let mut vec = vec;
vec.push(22);
vec.push(44);
vec.push(66);
vec.clone()
}