From 67d34a0d02e5e8d2a50a9760a300e94da660b90a Mon Sep 17 00:00:00 2001 From: Orestis Malaspinas <orestis.malaspinas@hesge.ch> Date: Fri, 22 Jun 2018 16:14:50 +0200 Subject: [PATCH] =?UTF-8?q?fonctions=20de=20base=20termin=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fonctions.md | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/fonctions.md b/fonctions.md index 5b48730..b25a2eb 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 -- GitLab