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

added come content

parent 8503011c
No related branches found
No related tags found
No related merge requests found
Pipeline #
fn do_something(library: Vec<&str>) {
// Do something with the library
fn do_something(_notebook: Vec<&str>) {
// Do something with the notebook
}
fn main() {
let mut notebook = Vec::new(); // par défaut notebook est immutable
library.push("Il fait beau.");
library.push("Lea oiseaux chantent.");
notebook.push("Il fait beau.");
notebook.push("Lea oiseaux chantent.");
do_something(library); // ownership transféré à do_something
// do_something(library); // redo something
do_something(notebook); // ownership transféré à do_something
// do_something(notebook); // redo something
}
......@@ -3,16 +3,6 @@ title: Tech Lunch - Intro à Rust
author: Orestis Malaspinas
date: 11 janvier 2019
sansfont: Sans Serif
<!-- header-includes:
<link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css" >
<link rel="stylesheet" href="../reveal.js/css/theme/simple.css" id="theme">
<link rel="stylesheet" href="../css/console.css" id="theme">
<script src="../jquery/dist/jquery.min.js"></script> -->
<!-- include-after:
<script src="../js/playRust.js"></script>
<script src="../js/remote-code.js"></script>
<script src="../js/remote-diagrams.js"></script>
<script src="../js/em-artiste.js"></script> -->
pdfMaxPagesPerSlide:
1
<!-- slide-numbers: true -->
......@@ -137,24 +127,34 @@ Quel est le problème dans ce code?
# Sûreté mémoire en Rust
## Ownership
## Ownership (1/N)
- On est **propriétaire** des données.
- On peut faire ce qu'on veut avec:
- Quand on est **propriétaire** des données, on peut faire ce qu'on veut avec:
1. Les lire.
2. Les modifier.
3. Les donner à quelqu'un d'autre.
. . .
## Ownership (2/N)
![Source: [Wikipedia](https://upload.wikimedia.org/wikipedia/commons/d/d3/BibliothekSG.jpg)](https://upload.wikimedia.org/wikipedia/commons/d/d3/BibliothekSG.jpg)
![Comme avec un cahier. Source [Wikipedia](https://upload.wikimedia.org/wikipedia/commons/9/9f/Se%C5%A1ity.JPG)](https://upload.wikimedia.org/wikipedia/commons/9/9f/Se%C5%A1ity.JPG){#fig:mem_vec_str width=50%}
. . .
## Ownership en pratique
Voyons ce que ça donne sur un exemple pratique.
<pre><code data-trim="hljs rust" class="lang-rust">
fn do_something(library: Vec<&str>) {
// Do something with the library
}
## Ownership en pratique
fn main() {
let mut notebook = Vec::new(); // par défaut notebook est immutable
library.push("Il fait beau.");
library.push("Les oiseaux chantent.");
do_something(library); // ownership transféré à do_something
// do_something(library); // redo something
}
</code></pre>
<!-- - `vector` et `string` sont alignés en mémoire.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment