diff --git a/types.md b/types.md index ad625b0967254246f9ee3841193c0e017903ea83..a05e921cd1e2b4338bcb2afd284a0f1009d02fb4 100644 --- a/types.md +++ b/types.md @@ -48,9 +48,12 @@ fn main() { - Les charactères. -## Les entiers +## Les entiers (1/2) -- Il existe 4 tailles d'entiers (8, 16, 32, et 46 bits) qui viennent en signé ou non-signé. +- Il existe 4 tailles d'entiers (8, 16, 32, et 64 bits) qui viennent en signé ou non-signé. +- Également en taille dépendant de l'architecture + - `isize`{.rust} entier signé 32 ou 64 bits. + - `usize`{.rust} entier non-signé 32 ou 64 bits. +---------------+---------------+--------------------+ |Longueur | Signé | Non-signé | @@ -63,7 +66,34 @@ fn main() { +---------------+---------------+--------------------+ | 64 bits | `i64`{.rust} | `u64`{.rust} | +---------------+---------------+--------------------+ +| 32 ou 64 bits | `isize`{.rust}| `usize`{.rust} | ++---------------+---------------+--------------------+ -- Également en taille dépendant de l'architecture - - `isize`{.rust} entier signé 32 ou 64 bits. - - `usize`{.rust} entier signé 32 ou 64 bits. \ No newline at end of file +## Les entiers (2/2) + +- Par défaut un entier est de type `i32`{.rust}. +- Les types `isize`{.rust} et `usize`{.rust} sont typiquement pour indéxer des collections. +- On peut spécifier le type d'un entier: + - `42u8`{.rust} est un entier 8 bits non signé. + - `42isize`{.rust} est un entier de 32 ou 64 bits signé. +- Pour améliorer la lisibilité on peut également ajout des "_": + - On peut écrire `1000000`{.rust} comme `1_000_000`{.rust} +- On ne peut **pas** convertir implicitement d'un type à un autre. +<pre><code data-trim="hljs rust" class="lang-rust"> +fn main() { + let x:i64 = 5i32; // entier 32 bits dans une variable 64 bits +} +</code></pre> + +## Les nombres à virgles flottante + +- Il existe deux tailles de nombres à virgule flottante (32 et 64 bits): + - `f32`{.rust}, + - `f64`{.rust}. +- Par défaut un nombre à virgule flottante est un `f64`{.rust} +- On ne peut **pas** convertir implicitement d'un type à un autre. +<pre><code data-trim="hljs rust" class="lang-rust"> +fn main() { + let x:f64 = 5f32; // flottant 32 bits dans une variable 64 bits +} +</code></pre> \ No newline at end of file diff --git a/variables.md b/variables.md index 935898e96193afc386a8d2c657b4c8e17d2205ef..52f2f4d9eca230f2af40169431f72c4a6eddee86 100644 --- a/variables.md +++ b/variables.md @@ -35,40 +35,43 @@ height: - Pour *déclarer* une variable il faut utiliser la forme: `let symbole = valeur`{.rust}. -<pre><code data-trim="hljs rust" class="lang-rust"> -fn main() { - let x = 5; // entier 32 bits - println!("La valeur de x est: {}", x); // affichage + <pre><code data-trim="hljs rust" class="lang-rust"> + fn main() { + let x = 5; // entier 32 bits + println!("La valeur de x est: {}", x); // affichage - let y = "La valeur 5 est liée avec la variable x"; // Chaîne de caractères - println!("La valeur de y est: {}", y); // affichage -} -</code></pre> + let y = "La valeur 5 est liée avec la variable x"; // Chaîne de caractères + println!("La valeur de y est: {}", y); // affichage + } + </code></pre> - En rust le type d'une variable est **inféré** (quand c'est possible). - Sinon il faut le donner explicitement: `let symbole: type = valeur`{.rust}. -<pre><code data-trim="hljs rust" class="lang-rust"> -fn main() { - let x: i32 = 5; // entier 32 bits - println!("La valeur de x est: {}", x); // affichage -} -</code></pre> + <pre><code data-trim="hljs rust" class="lang-rust"> + fn main() { + let x: i32 = 5; // entier 32 bits + println!("La valeur de x est: {}", x); // affichage + } + </code></pre> ## Quelques règles (1/2) - Les mot-clés du langage sont interdits pour nommer les variables. -<pre><code data-trim="hljs rust" class="lang-rust"> -fn main() { - let if = 7; -} -</code></pre> + + <pre><code data-trim="hljs rust" class="lang-rust"> + fn main() { + let if = 7; + } + </code></pre> + - Une variable ne peut pas être utilisée si elle n'est pas *déclarée*. -<pre><code data-trim="hljs rust" class="lang-rust"> -fn main() { - println!("La valeur de x est: {}", x); // affichage -} -</code></pre> + + <pre><code data-trim="hljs rust" class="lang-rust"> + fn main() { + println!("La valeur de x est: {}", x); // affichage + } + </code></pre> ## Quelques règles (2/2)