Tour of Rust Inhoudsopgave

Bekende Vrienden

Laten we nadenken over enkele smart pointers die we al hebben gezien, zoals Vec<T> en String.

Vec<T> is een smart pointer die simpelweg een geheugenregio van bytes bezit. De Rust-compiler heeft geen idee wat er in deze bytes zit. De smart pointer interpreteert wat het betekent om items uit de geheugenregio te halen die het beheert, houdt bij waar gegevensstructuren binnen die bytes beginnen en eindigen, en dereferentieert uiteindelijk een raw pointer naar gegevensstructuren in een mooie, ergonomische interface voor ons om te gebruiken (bijv. my_vec[3]).

Op vergelijkbare wijze houdt String een geheugenregio van bytes bij, en beperkt programmatisch de inhoud die erin wordt geschreven om altijd geldige utf-8 te zijn, en helpt die geheugenregio te dereferentiëren naar een type &str.

Beide gegevensstructuren gebruiken unsafe dereferentie van raw pointers om hun werk te doen.

Geheugendetails: