Встречается на собеседованиях • сегодня

Какая модель управления памятью в Rust

В Rust используется модель управления памятью на основе системы владения (ownership), заимствования (borrowing) и времени жизни (lifetimes). Основные принципы:

  1. Владение – у каждого значения есть единственный владелец. При выходе владельца из области видимости память автоматически освобождается.
  2. Заимствование – можно временно передавать ссылки (&T или &mut T) с проверкой на этапе компиляции.
  3. Время жизни – компилятор отслеживает, чтобы ссылки не переживали данные, на которые они указывают.

Пример:

rust
fn main() {
    let s = String::from("hello"); // s - владелец
    takes_ownership(s);             // s перемещается в функцию
    // println!("{}", s);          // Ошибка! s больше не валидна

    let x = 5;
    makes_copy(x);                  // x копируется (i32 - Copy)
    println!("{}", x);              // OK
}

fn takes_ownership(some_string: String) {
    println!("{}", some_string);
} // some_string выходит из области видимости, память освобождается

fn makes_copy(some_integer: i32) {
    println!("{}", some_integer);
}

Rust гарантирует безопасность памяти без сборщика мусора через строгие правила компиляции.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы