Nézzünk meg néhány okos mutatót, amivel már találkoztunk, úgymint a Vec<T>
és String
!
A Vec<T>
egy okos mutató, ami a memóriában egy marék bájt tulajdonosa. A Rust fordítónak
halvány fogalma sincs róla, mi van ezekben a bájtokban. Az okos mutató azonban megmondja, hogyan
kell értelmezni az általa birtokolz bájthalmazt, nyilván tartja, hol kezdődnek és végződnek a
tartalmazott adatstruktúrák, majd végül leköveti a nyers mutatót egy kellemesen ergonomikus
felhasználási módot biztosítva (pl.: vektorom[3]
).
Hasonlóképp, a String
is egy memóriaterületet követ nyomon. Megköti, hogy minden oda írt adat
érvényes utf-8
szöveg kell, hogy legyen, és segít ezt a memóriaterületet &str
típusként
értelmezni.
Mindkét adatstruktúra nem biztonságos kódban lekövetett nyers mutatókat használ ezekre a feladatokra.
Hogyan érinti ez a memóriát: