Skip to content
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.

More Rust Snippets