Loading rust_04_values...

enib_small.png Rust 04_Values — Valeurs et références

Les exemples choisis ici concernent des notions centrales du langage Rust qui garantissent la sécurité des accès aux données.

Tout le travail d'analyse du cycle de vie des valeurs et des références est entièrement à la charge d'une partie du compilateur nommée le borrow-checker ; les précautions qu'il impose ne coûtent rien en performance.
Cela est très particulier et très caractéristique du langage Rust et c'est ce qui garantit la sécurité des divers accès aux données.
C'est d'ailleurs ce qui pose le plus de difficultés aux personnes qui découvrent ce langage.
Il faut absolument persévérer et suivre les recommandations du compilateur car elles sont fondamentalement justifiées : “don't fight the borrow-checker!” est un conseil récurrent donné par les programmeurs expérimentés.
Exemple illustratif
{1 #move } Le déplacement et la copie des valeurs
{2 #sh_ref } Les références partagées (non-mutables)
{3 #ex_ref } Les références exclusives (mutables)
{4 #int_mut } L'exclusivité dynamique (interior mutability)