Turul limbajului Rust Cuprins

Cod nesigur inteligent

Pointerii inteligenți folosesc adesea cod nesigur. După cum am menționat și mai devreme, aceștia sunt des folosiți în Rust pentru interacțiunea cu memoria la un nivel apropiat de hardware.

Ce este codul nesigur? Codul nesigur se comportă exact ca orice cod scris în Rust cu excepția câtorva aspecte al căror comportament

nu poate fi garantat de către compilatorul din Rust.

O trăsătură de bază a codului nesigur este dereferențierea unui pointer simplu. Asta înseamnă că poate lua un pointer simplu și să îl ducă la o locație din memorie, declarând "aici există o structură de date!" și transformând-o într-o reprezentare de date pe care o poți folosi (adică transformă *const u8 în u8). Limbajul Rust nu poate urmări fiecare byte ce este scris în memorie. Pentru că limbajul Rust nu poate garanta ce se află la un număr aleator folosit drept pointer simplu, acesta folosește dereferențierea într-un bloc unsafe { ... }.

Pointerii inteligenți dereferențiază pointerii simpli pe larg, dar este bine știut ce fac.