A referenciákat át lehet alakítani egy valamivel primitívebb típussá, úgynevezett nyers mutatóvá. Hasonlóan a számokhoz, ezeket is lehet másolni, mozgatni különösebb megkötések nélkül. A Rust nem garantál semmit azzal a memóriahellyel kapcsolatban, amire a mutató mutat.
Kétféle nyers mutatót különböztetünk meg:
*const T
- Olyan, T típusú adatra mutat, aminek nem szabad megváltoznia.mut T
- Olyan, T típusú adatra mutat, ami megváltoztatható.Nyers mutatók szabadon konvertálhatók számokká (pl. usize
), és vissza.
Nyers mutatók nem biztonságos (unsafe
) kódban használhatók adatok elérésére. (Erre még
visszatérünk.)
Hogyan érinti ez a memóriát:
Egy Rust-beli referencia felhasználását tekintve nagyon hasonló egy C-beli mutatóhoz, ugyanakkor sokkal erősebb fordítási időben biztosított megkötései vannak annak, hogyan lehet őket tárolni és más függvényeknek átadni.
Egy Rust-beli nyers mutató egy C-beli mutatóhoz hasonlóan egy szám, ami szabadon másolható, átadható, számmá alakítható, így akár matekozhatunk is vele.