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

ajout assert

parent b7916ae5
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -12,41 +12,6 @@ sansfont: Sans Serif ...@@ -12,41 +12,6 @@ sansfont: Sans Serif
- L'erreur dont on peut se remettre. - L'erreur dont on peut se remettre.
- Un résultat qui peut contenir une valeur ou pas. - Un résultat qui peut contenir une valeur ou pas.
# Options
- Un type énuméré particulièrement utile est le type `Option`{.rust}
```{.lang-rust}
enum Option<T> { // <T> est une notation pour un type générique
Some(T),
None,
}
```
- Type utilisé lorsque une valeur peut être "quelque chose" ou "rien" (ex: recherche d'un élément dans un tableau).
- Exmple: la division
<pre><code data-trim="hljs rust" class="lang-rust">
fn main() {
let num = 1;
let denum = 4;
let div =
if denum == 0 {
None
} else {
Some(num / denum)
};
match div {
Some(d) => println!("{} divisé par {} donne {}", num, denum, d),
None => println!("Cette division n'existe pas."),
}
}
</code></pre>
- Il est commun que des fonction retournent des `Option`{.rust}.
# Panique! # Panique!
## `panic!()`{.rust} ## `panic!()`{.rust}
...@@ -112,14 +77,83 @@ sansfont: Sans Serif ...@@ -112,14 +77,83 @@ sansfont: Sans Serif
15: _start 15: _start
``` ```
## `assert!()`{.rust} ## Asserts
- On peut utiliser deux macros forts utiles. - On peut utiliser trois macros forts utiles.
:::::::::::::: {.columns}
::: {.column width="50%"}
- `assert!(cond, "Texte");`{.rust} - `assert!(cond, "Texte");`{.rust}
- N'importe quelle condition booléenne.
<pre><code data-trim="hljs rust" class="lang-rust">
fn main() {
let num = 1;
let denum = 0;
assert!(denum != 0, "Le dénominateur doit être non nul.");
let _total = num / denum;
} }
</code></pre>
:::
::: {.column width="50%"}
- `assert_eq!(lhs, rhs, "Texte");`{.rust} - `assert_eq!(lhs, rhs, "Texte");`{.rust}
- On ne teste que l'égalité.
<pre><code data-trim="hljs rust" class="lang-rust">
fn main() {
let a = 1;
let b = 0;
assert_eq!(a, b, "A et b devraient être égales.");
}
</code></pre>
:::
::::::::::::::
- `assert_ne!(lhs, rhs, "Texte");`{.rust}
<pre><code data-trim="hljs rust" class="lang-rust">
fn main() {
let a = 1;
let b = 0;
assert_ne!(a, b, "A et b devraient être différentes.");
}
</code></pre>
# Options
- Un type énuméré particulièrement utile est le type `Option`{.rust}
```{.lang-rust}
enum Option<T> { // <T> est une notation pour un type générique
Some(T),
None,
}
```
- Type utilisé lorsque une valeur peut être "quelque chose" ou "rien" (ex: recherche d'un élément dans un tableau).
- Exmple: la division
<pre><code data-trim="hljs rust" class="lang-rust">
fn main() {
let num = 1;
let denum = 4;
let div =
if denum == 0 {
None
} else {
Some(num / denum)
};
match div {
Some(d) => println!("{} divisé par {} donne {}", num, denum, d),
None => println!("Cette division n'existe pas."),
}
}
</code></pre>
- Il est commun que des fonction retournent des `Option`{.rust}.
# Résultat # Résultat
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment