Ответ
Rust использует систему владения (ownership) и заимствования (borrowing) для управления памятью во время компиляции, что делает ненужным сборщик мусора (GC). Это обеспечивает:
- Предсказуемость — нет пауз из-за GC.
- Безопасность — компилятор гарантирует отсутствие утечек и висячих указателей.
- Производительность — нет накладных расходов на runtime-управление памятью.
Пример:
fn main() {
let s = String::from("hello"); // s владеет строкой
takes_ownership(s); // s перемещается в функцию
// println!("{}", s); // Ошибка: s больше не валидна
}
fn takes_ownership(s: String) { // s становится владельцем
println!("{}", s); // память освобождается при выходе
}
Вместо GC Rust полагается на RAII (Resource Acquisition Is Initialization) и проверки на этапе компиляции.