Добавить объявление

В Rust необычная работа с переменными и памятью

В Rust необычная работа с переменными и памятью. Каждое значение имеет владельца и в один момент времени у значения может быть только один владелец.

Например:

let age = 33;
let age2 = age

println!("{}", age2); // Ок
println!("{}", age); // Ошибка: age нельзя использовать, значением владеет age2

Тоже самое и с передачей значения как параметр функции:

let age = 33;

println!("{}", age); // Ок

print_age(age);

println!("{}", age); /// Ошибка: age больше не владеет значением

fn print_age(age: u32){
println!("{}", age); // Ok, параметр функции теперь владеет значением
}

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

Буду привыкать..
09.10.2025 13 154