Sobes.tech
Junior — Middle
86

Rust-да жадыны басқару және бөлу қалай жүзеге асырылатынын түсіндіре аласыз ба?

AI-дан жауап

sobes.tech AI

Rust-та жадыны басқару иелікте (ownership), қарызға алу (borrowing) және өмір сүру уақыты (lifetimes) жүйесіне негізделген, бұл жад жинағыштың қажеттілігін жойып, қауіпсіздігін қамтамасыз етеді.

  • Иелікте болу (Ownership): Rust-та әрбір объектінің бір ғана иесі бар — ол жадты босату үшін жауапты айнымалы.
  • Қарызға алу (Borrowing): Мәліметтерге уақытша сілтеме жасауға болады, иелікті бермей. Қарызға алу өзгермелі және өзгермейтін болуы мүмкін, және бір уақытта бірнеше өзгермейтін сілтемелер немесе бір өзгермелі сілтеме болуы мүмкін.
  • Өмір сүру уақыты (Lifetimes): Компилятор сілтемелердің олар сілтеме жасайтын мәліметтердің өмір сүру уақытынан шықпауын тексереді.

Мысал:

fn main() {
    let s = String::from("hello"); // s — строканың иесі
    let r1 = &s; // өзгермейтін сілтеме
    let r2 = &s; // тағы бір өзгермейтін сілтеме
    println!("{} және {}", r1, r2);
    // let r3 = &mut s; // қате: өзгермелі сілтеме жасауға болмайды, егер өзгермейтін сілтемелер бар болса
}

Осылайша, Rust жад қауіпсіздігін компиляция кезеңінде қамтамасыз етеді, орындалу уақытының қосымша шығындарынсыз.