Ownership and borrowing are the features that set Rust apart from other programming languages. The closest equivalent that you're likely to find is the Resource Aquisition Is Instantiation (RAII) design pattern common in C++, but that's a design pattern, not a language feature, and is not fully analogous.
In this chapter, we're going to talk about the following:
- Ownership of values and the scope of variables
- The ways that ownership is transferred between scopes
- Borrowing and lending data values, and how that interacts with ownership
- The lifetime of borrowed values
- The self parameter of functions, and the implications of borrowing or not borrowing it