Passer au contenu principal
eLearner.app
Module 1 · Leçon 2 sur 22/14 dans le cours~10 min
Leçons du module (2/2)

Types primitifs

Rust est un langage à typage statique, ce qui signifie qu'il doit connaître le type de toutes les variables au moment de la compilation. Habituellement, le compilateur peut déduire le type en fonction de la valeur assignée, mais il est parfois nécessaire ou utile de le spécifier manuellement.

Les types primitifs en Rust se divisent en deux grandes catégories : scalaires (valeur unique) et composés (groupe de valeurs).

Types Scalaires

Les types scalaires représentent une valeur unique. Rust en possède quatre fondamentaux :

  1. Entiers : Nombres sans virgule. Ils peuvent être signés (i8, i16, i32, i64, i128, isize) ou non signés (u8, u16, u32, u64, u128, usize). Le type par défaut est i32.
  2. Nombres à virgule flottante : Nombres avec virgule. Ils peuvent être f32 ou f64 (double précision, par défaut).
  3. Booléens : Représentent la vérité logique avec true ou false (type bool).
  4. Caractères : Un seul point de code Unicode entouré de guillemets simples (type char), ex. 'a', 'ℤ', ou l'emoji '😻'.

Exemple d'annotation explicite du type :

Code
let x: i64 = 42;
let y: f64 = 3.1415;
let is_rust_awesome: bool = true;
let heart_emoji: char = '❤';

Types Composés

Les types composés peuvent regrouper plusieurs valeurs en un seul type. Rust possède deux types composés primitifs principaux :

Les Tuples

Un tuple regroupe des valeurs de différents types dans une collection de taille fixe :

Code
let person: (String, i32) = (String::from("Alice"), 30);

// Destrutturazione per estrarre valori
let (name, age) = person;

// Accesso diretto con l'indice usando il punto (.)
let name_direct = person.0;
let age_direct = person.1;

Les Tableaux (Vecteurs à taille fixe)

Un tableau (array) regroupe plusieurs éléments du même type dans une collection à taille fixe stockée dans la pile (stack) :

Code
let numbers = [1, 2, 3, 4, 5]; // Rilevato come [i32; 5]
let first = numbers[0]; // Accesso per indice
let third = numbers[2];

Si vous tentez d'accéder à un index en dehors des limites du tableau (ex. numbers[10]), Rust interrompra immédiatement l'exécution (panique) au moment de l'exécution au lieu de permettre des accès mémoire non autorisés.

Comparaison entre Tuples et Tableaux

CaractéristiqueTupleTableau
Type des élémentsPeuvent être différentsDoivent être identiques
TailleFixeFixe
AccèsVia un point (.0, .1)Via un index ([0])

À toi de jouer

Exercice#rust.m1.l2.e1
Tentatives : 0Chargement…

Déclarez un tuple nommé stats contenant l'âge 30 (entier) et le score 95.5 (décimal). Affichez ensuite le score à l'écran en accédant directement au deuxième élément du tuple à l'aide de l'index.

Chargement de l'éditeur…
Afficher l'indice

Créez le tuple avec `let stats = (30, 95.5);`. Accédez au deuxième élément en utilisant `stats.1` à l'intérieur de la macro `println!`.

Solution disponible après 3 tentatives

Exercice#rust.m1.l2.e2
Tentatives : 0Chargement…

Déclarez un tableau nommé numbers contenant les valeurs entières de 1 à 5. Affichez à l'écran le troisième élément du tableau (index 2) à l'aide de println!.

Chargement de l'éditeur…
Afficher l'indice

Déclarez le tableau avec `let numbers = [1, 2, 3, 4, 5];` et accédez au troisième élément en l'indexant avec `[2]`.

Solution disponible après 3 tentatives

Exercice#rust.m1.l2.e3
Tentatives : 0Chargement…

Étant donné le tuple `let point = (10, 20);`, utilisez la déstructuration pour extraire les valeurs dans deux variables nommées `x` et `y`. Affichez ensuite la somme de `x` et `y`.

Chargement de l'éditeur…
Afficher l'indice

Utilisez la syntaxe `let (x, y) = point;` pour déstructurer le tuple, puis additionnez les variables dans le `println!`.

Solution disponible après 3 tentatives