Menu
Coddy logo textTech

Aperçu des structures

Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 21 sur 66.

Maintenant que vous comprenez ce que sont les structures (structs), apprenons comment les créer et les utiliser concrètement. Cela implique deux étapes : d'abord définir la structure de la struct, puis en créer des instances.

Pour définir une structure, vous utilisez le mot-clé struct suivi du nom de la structure et de ses champs à l'intérieur d'accolades. Chaque champ a un nom et un type :

struct User {
    username: String,
    active: bool,
}

Cela crée un modèle pour une struct User avec deux champs : username de type String et active de type bool.

Convention de nommage : Les noms de structures en Rust doivent utiliser le PascalCase (également appelé UpperCamelCase), ce qui signifie que chaque mot commence par une majuscule — par exemple, User, ProductItem ou ShoppingCart. Rust vous avertira si vous ne suivez pas cette convention.

Une fois que vous avez défini une structure, vous pouvez en créer des instances en spécifiant des valeurs pour chaque champ :

let user1 = User {
    username: String::from("alice"),
    active: true,
};

Remarquez que vous fournissez le nom de la structure suivi d'accolades contenant chaque nom de champ, deux-points, et sa valeur. L'ordre des champs n'a pas à correspondre à l'ordre de définition.

Pour accéder aux champs d'une instance de structure, utilisez la notation par point — écrivez le nom de l'instance suivi d'un point et du nom du champ :

println!("Username: {}", user1.username);
println!("Active: {}", user1.active);

Ici, user1.username accède au champ username de user1, et user1.active accède au champ active. Vous pouvez utiliser ces valeurs de champ partout où vous utiliseriez une variable ordinaire.

challenge icon

Défi

Facile

Vous recevrez trois entrées : un nom de produit, un prix (sous forme de nombre décimal) et une quantité en stock (sous forme d'entier). Définissez une structure Product avec trois champs : name de type String, price de type f64 et stock de type i32. Ensuite, créez une instance de cette structure en utilisant les valeurs d'entrée et affichez les informations du produit.

Exigences :

  • Définir une structure Product avec les champs : name: String, price: f64 et stock: i32
  • Lire la première entrée comme nom du produit
  • Lire la deuxième entrée et la convertir en f64 pour le prix
  • Lire la troisième entrée et la convertir en i32 pour la quantité en stock
  • Créer une instance de la structure Product avec ces valeurs
  • Afficher les informations du produit exactement dans le format indiqué ci-dessous

Entrée :

  • Première ligne : Nom du produit (par ex., Laptop)
  • Deuxième ligne : Prix sous forme de nombre décimal (par ex., 999.99)
  • Troisième ligne : Quantité en stock sous forme d'entier (par ex., 15)

Sortie :

  • Première ligne : Product: [name]
  • Deuxième ligne : Price: $[price]
  • Troisième ligne : Stock: [quantity]

Essayez vous-même

use std::io;

// TODO: Définissez votre struct Product ici


fn main() {
    // Lire le nom du produit
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed to read line");
    let name = name.trim().to_string();
    
    // Lire le prix
    let mut price_input = String::new();
    io::stdin().read_line(&mut price_input).expect("Failed to read line");
    let price: f64 = price_input.trim().parse().expect("Failed to parse price");
    
    // Lire la quantité en stock
    let mut stock_input = String::new();
    io::stdin().read_line(&mut stock_input).expect("Failed to read line");
    let stock: i32 = stock_input.trim().parse().expect("Failed to parse stock");
    
    // TODO: Créer une instance de la struct Product en utilisant les valeurs saisies
    
    
    // TODO: Afficher les informations du produit dans le format requis
    
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow