Rust
Ownership
Rust ownership system.
By EZ4Code Team
ownershipownership
Code
fn main() {
// Value move
let s1 = String::from("hello");
let s2 = s1; // s1 ownership moved to s2
// println!("{}", s1); // Error: s1 is invalid
// Function parameter transfers ownership
let s3 = String::from("world");
takes_ownership(s3);
// s3 is invalid here
// Return value transfers ownership
let s4 = gives_ownership();
println!("{}", s4);
}
fn takes_ownership(s: String) {
println!("got: {}", s);
} // s is dropped here
fn gives_ownership() -> String {
String::from("from function")
}Explanation
Rust manages memory via the ownership system; values transfer ownership on assignment or parameter passing, without GC.