diff --git a/fonctions.md b/fonctions.md index 5b487302d0d3ff88862811de4815dcda664b57f7..b25a2eb9154fea8f69f25de8b04528b48486811e 100644 --- a/fonctions.md +++ b/fonctions.md @@ -71,8 +71,9 @@ fn main() { - 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. +- Une fonction contient des instructions et se termine parfois avec une expression. - <pre><code data-trim="hljs rust" class="lang-rust"> +<pre><code data-trim="hljs rust" class="lang-rust"> fn main() { println!("La fonction main est une fonction."); @@ -82,10 +83,36 @@ fn main() { fn fonction_fonction() { println!("La fonction fonction_fonction est une fonction."); } - </code></pre> +</code></pre> ## Paramètres de fonctions -- Une fonction peut prendre des arguments séparés par des `,`{.rust}. +- 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 + + <pre><code data-trim="hljs rust" class="lang-rust"> + fn main() { + affiche_entier(1024); +} + + fn affiche_entier(x: i32) { + println!("Affiche l'entier {}.", x); +} + </code></pre> + +## Valeur de retour de fonctions + +- On déclare le type de retour d'une fonction avec `-> Type`{.rust}. + + <pre><code data-trim="hljs rust" class="lang-rust"> + fn main() { + println!("La réponse est {}.", la_reponse()); +} + + fn la_reponse() -> i32 { + 42 +} +</code></pre> + +- **Important:** La valeur de retour d'une fonction n'est pas suivie d'un "`;`{.rust}". +- Les instructions ne retournent pas de valeur et sont représentées par le type `()`{.rust} (le type vide). \ No newline at end of file