Slide 17
Slide 17 text
Rust Move Ownership
fn main() {
// Allocate array on heap
let numbers = vec![1, 2, 3, 5, 8];
println!("{:?}", numbers);
}
Owner
fn main() {
// Allocate array on heap
let numbers = vec![1, 2, 3, 5, 8];
println!("{:?}", numbers);
// Move ownership to other_numbers
let other_numbers = numbers;
println!("{:?}", other_numbers);
}
fn main() {
// Allocate array on heap
let numbers = vec![1, 2, 3, 5, 8];
println!("{:?}", numbers);
// Move ownership to other_numbers
let other_numbers = numbers;
println!("{:?}", other_numbers);
// Now we cannot access numbers anymore
// because value was moved.
// println!("{:?}", numbers); // -> does NOT COMPILE
}
fn main() {
// Allocate array on heap
let numbers = vec![1, 2, 3, 5, 8];
println!("{:?}", numbers);
// Move ownership to other_numbers
let other_numbers = numbers;
println!("{:?}", other_numbers);
// Now we cannot access numbers anymore
// because value was moved.
// println!("{:?}", numbers); // -> does NOT COMPILE
// Make a (deep) copy -> no move of ownership
let cloned_numbers = other_numbers.clone();
println!("clone = {:?}, source = {:?}", cloned_numbers, other_numbers);
}
Try online: https://repl.it/@RainerStropek/Rust-Move-Ownership