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