Turul limbajului Rust Cuprins

Amici comuni

Să luăm drept exemplu niște pointeri inteligenți deja cunoscuți Vec<T> și String.

Vec<T> este un pointer inteligent ce deține o regiune din memorie. Compilatorul de Rust nu știe ce se află în acei octeți. Pointerul inteligent interpretează ce înseamnă să ia un element din regiunea de memorie pe care o gestionează, ține socoteala unde încep și unde se termină structurile de date ale acelor byți, și, în cele din urmă, dereferențiază un pointer simplu în structuri de date cu o interfață simplă și ergonomică pe care le putem folosi (ex my_vec[3]).

Asemănător, String ține socoteala regiunilor de memorie are byților, și restricționează conținutul scris în acestea să fie mereu în formatul utf-8 și ajută la dereferențierea acelei regiuni de memorie în tipul &str.

Ambele structuri de date folosesc dereferențierea nesigură a pointerilor simpli pentru a-și împlini scopul.

Detalii despre memorie: