Читать книгу «Язык RUST: Основы и практика программирования» онлайн полностью📖 — Программист — MyBook.
image

Глава 3. Управление памятью и безопасность

3.1. Собственность и заимствование

В языке Rust, концепция собственности и заимствования является фундаментальной и играет ключевую роль в обеспечении безопасности и производительности программ. В этой главе мы подробно рассмотрим эти концепции и узнаем, как они работают в Rust.

**Собственность**

В Rust, каждое значение имеет владельца, который отвечает за его создание и удаление. Это означает, что когда вы создаете значение, вы автоматически становитесь его владельцем. Собственность определяет, кто имеет право доступа и манипулирования значением.

Например, рассмотрим следующий код:

```rust

let s = String::from("Привет, мир!");

```

В этом примере, переменная `s` является владельцем строки "Привет, мир!". Это означает, что `s` имеет полный контроль над строкой и может ее изменять или удалять.

**Заимствование**

Заимствование – это механизм, который позволяет вам использовать значение без принятия собственности над ним. Когда вы заимствуете значение, вы получаете ссылку на него, но не становитесь его владельцем.

В Rust, существует два типа заимствований: неизменяемое заимствование (`&T`) и изменяемое заимствование (`&mut T`).

Неизменяемое заимствование позволяет вам читать значение, но не изменять его. Изменяемое заимствование позволяет вам изменять значение, но только если вы явно указали, что хотите изменить его.

Например, рассмотрим следующий код:

```rust

let s = String::from("Привет, мир!");

let len = calculate_length(&s);

```

В этом примере, функция `calculate_length` заимствует строку `s` неизменяемым образом. Это означает, что функция может читать строку, но не может ее изменять.

**Правила собственности и заимствования**

В Rust, существуют три основных правила собственности и заимствования:

Конец ознакомительного фрагмента.