Skip to content
Snippets Groups Projects
Commit e8295363 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

ended borrowing

parent 61dffef8
Branches
No related tags found
No related merge requests found
......@@ -326,6 +326,41 @@ fn main() {
La référence est **vérouillée** personne d'autre ne peut modifier ou lire les données.
## En pratique (2/2)
<pre><code data-trim="hljs rust" class="lang-rust">
fn main() {
let mut notebook = Vec::new(); // par défaut notebook est immutable
notebook.push("Il fait beau.");
notebook.push("Les oiseaux chantent.");
{
let mut_borrow = &mut notebook;
notebook.len(); // only mut_borrow can read or write.
mut_borrow.push("Je le peux.");
} // mutable borrow ends here
notebook.push("Je le peux aussi à présent.");
}
</code></pre>
# Les lois de Rust
## Les trois loi de la propriété
1. Chaque valeur a une variable qui est son propriétaire (`owner`).
2. Une valeur ne peut avoir qu'un seul propriétaire à chaque instant.
3. Quand le programme sort de la portée du propriétaire, la valeur est détruite (`dropped`).
## Les deux lois de l'emprunt
1. On peut avoir autant de références **immutables** qu'on le shoutaire sur des données.
2. On ne peut avoir **une seule** référence mutable sur des données.
<!-- - `vector` et `string` sont alignés en mémoire.
- références "light".
- destruction déterministe. -->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment