diff --git a/control.md b/control.md index b9e6842f3b1a261378f19306e0056857e0f3284b..2f4913358b5278c51be7a4a3b41318aa58dd62b4 100644 --- a/control.md +++ b/control.md @@ -115,7 +115,7 @@ fn main() { - On sort d'une boucle avec `break`{.rust} - <pre><code data-trim="hljs rust" class="lang-rust"> +<pre><code data-trim="hljs rust" class="lang-rust"> fn main() { let mut i = 0; loop { @@ -129,7 +129,7 @@ fn main() { } } } - </code></pre> +</code></pre> ## La boucle `while`{.rust} diff --git a/fonctions.md b/fonctions.md index 50d95e86d717b88bf7f29fe057c1d2a714f9df32..5b487302d0d3ff88862811de4815dcda664b57f7 100644 --- a/fonctions.md +++ b/fonctions.md @@ -22,7 +22,7 @@ sansfont: Sans Serif <!-- slide-numbers: true --> --- -# Les instructions et les expressions +# Instructions et expressions ## Les instructions (statements) @@ -32,7 +32,7 @@ sansfont: Sans Serif ```{.lang-rust} let x = 1; // une instruction ``` -- On ne peut pas assigner une instruction +- On ne peut pas assigner une instruction `let`{.rust} <pre><code data-trim="hljs rust" class="lang-rust"> fn main() { @@ -50,14 +50,42 @@ sansfont: Sans Serif ``` - La plupart du code rust est une expression. -- N'importe quel bloc peut effectuer des opérations et retourner une valeur. +- N'importe quel **bloc** peut effectuer des opérations et retourner une valeur. <pre><code data-trim="hljs rust" class="lang-rust"> - fn main() { - let y = { - let x = 5 + 3; - x - 9 - }; - println!("5 + 3 - 9 = {}", y); - } +fn main() { + let y = { + let x = 5 + 3; + x - 9 + }; + println!("5 + 3 - 9 = {}", y); +} </code></pre> + +- **Important:** Une expression sans `;` dans un bloc retourne la valeur evaluée de l'expression. + +# Fonctions + +## Généralités + +- Les fonctions s'écrivent en *snake_case* (le compilateur vous avertiras...). +- La définition d'une fonction commence par un `fn`{.rust}. +- La définition des fonctions peut se faire avant ou après l'endroit où elle est appelée. + + <pre><code data-trim="hljs rust" class="lang-rust"> +fn main() { + println!("La fonction main est une fonction."); + + fonction_fonction(); +} + +fn fonction_fonction() { + println!("La fonction fonction_fonction est une fonction."); +} + </code></pre> + +## Paramètres de fonctions + +- Une fonction peut prendre des arguments séparés par des `,`{.rust}. +- Le type des arguments doit toujours être explicitement déclaré. +- \ No newline at end of file