Ownership and Borrowing in RUST
Rust uses a unique system called ownership and borrowing to ensure memory safety. The idea is that every value in Rust has an owner, and the owner is responsible for freeing the memory when the value goes out of scope. Here's an example:
rust
fn main() {
let s = String::from("hello"); // s is the owner of the string "hello"
takes_ownership(s); // s is moved into the function, and is no longer valid here
let x = 5; // x is the owner of the integer 5
makes_copy(x); // x is copied into the function, so it is still valid here
}
fn takes_ownership(some_string: String) { // some_string takes ownership of its parameter
println!("{}", some_string);
} // some_string is dropped and its memory is freed
fn makes_copy(some_integer: i32) { // some_integer does not take ownership of its parameter
println!("{}", some_integer);
} // some_integer is dropped, but nothing special happens
No comments:
Post a Comment