Rust has three rules of ownership:
- Each value in Rust has a variable that's called its owner
- There can only be one owner at a time
- When the owner goes out of scope, the value will be dropped
In the simplest case, we can define a block with a variable that goes out of scope at the end of the block:
fn main()
{
//variable x has not yet been defined
{
let x = 5;
//variable x is now defined and owned by this context
//variable x is going out of scope and will be dropped here
}
//variable x has gone out of scope and is no longer defined
}
We have brushed against the first two rules of ownership and lifetimes in previous chapters. However, this is the first chapter in which we have needed to work with the third rule—drop.