Trimiterea datelor împrumutate
Regulile din Rust pentru referințe pot fi rezumate foarte bine de:
- Rust permite existența unei singure referințe mutabile sau a mai multor referințe imutabile, dar nu a celor două în același timp.
- O referință nu trebuie niciodată să aibă o durată de viață mai lungă decât proprietarul ei.
Aceste lucruri nu tind să fie o problemă atunci când trimitem referințe unor funcții.
Detalii despre memorie:
- Prima regula pentru referințe previne intercalarea datelor (data races). Ce este o intercalare a datelor? Există posibilitatea ca atunci când citim niște date, acestea să fie desincronizate din cauza existenței unei entități (funcție sau alt mecanism) care modifică acele date în același timp. Acest lucru se întâmplă des în programarea pe mai multe thread-uri (multi-threaded).
- A doua regulă pentru referințe previne folosirea greșită a referințelor legate de resurse care nu mai există în memorie (numite și dangling pointers în C).