Types primitifs atomiques
Ce guide est actuellement en cours de rédaction : si quelque chose vous semble mal expliqué ou peu clair, n'hésitez pas à me faire un retour sur github ou par mail
Une nouvelle feuille sera publiée chaque semaine : si vous souhaitez être averti·e des nouveaux contenus, abonnez-vous par mail ou suivez-moi sur twitter
Un type scalaire représente une donnée atomique par opposition à des types composés - comme des types listant plusieurs valeurs tels que array, tuple ou String (une String étant une liste de caractères). Il existe quatre types scalaires de données :
- Entier
- Nombre à virgule flottante
- Booléen
- Caractère
Entier
let y: u8 = 142; // type entier non-signé 8 bits
let x = 142; // Rust infère le type i32 par défaut
2
longueur | signé | non-signé | en décimal signé | en décimal non-signé |
---|---|---|---|---|
8-bits | i8 | u8 | de -128 à +127 | de 0 à 255 |
16-bits | i16 | u16 | de -32 768 à +32 767 | de 0 à 65 536 |
32-bits | i32 | u32 | de -2147483648 à +2147483647 | de 0 à 4 294 967 296 |
64-bits | i64 | u64 | de - 9 223 372 036 854 775 808 à +9 223 372 036 854 775 807 | de 0 à 18 446 744 073 709 551 616 |
arch | isize | usize | dépend de l'architecture |
NOTE
isize et usize dépendent du type d'ordinateur sur lequel tourne le programme : 64 bits si vous êtes sur une architecture 64 bits, 32 bits si vous êtes sur une architecture 32 bits.
NOTE
Les entiers sont par défaut du type i32 parce que c'est généralement le type le plus performant.
Nombre à virgule flottante
let y: f32 = 142.567890; // flottant 32 bits
let x = 2.0; // Rust infère le type f64 par défaut
2
longueur | notation |
---|---|
32-bits | f32 |
64-bits | f64 |
💡 Le type par défaut est f64 parce que sur les CPUs modernes, il est quasiment aussi rapide que f32 mais offre bien plus de précisions.
Booléen
let y: bool = false; // avec un type explicite
let x = true; // ici Rust infère le type bool
2
Caractère
let c = 'z';
let z = 'ℤ';
let heart_eyed_cat = '😻';
2
3
NOTE
Le type caractère est spécifié avec des guillemets simples tandis que les chaînes de caractères sont spécifiées avec des guillemets doubles.