Menu
Coddy logo textTech

Accéder aux champs d'une structure

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

Une fois que vous avez créé une instance de struct, vous avez besoin d'un moyen de récupérer les valeurs qui y sont stockées. Rust utilise la notation par point pour accéder aux champs individuels au sein d'une struct.

La syntaxe est simple : vous écrivez le nom de l'instance de la structure, suivi d'un point, puis le nom du champ auquel vous souhaitez accéder :

let product = Product {
    name: String::from("Laptop"),
    price: 999,
};

println!("Product: {}", product.name);
println!("Price: ${}", product.price);

Cette notation par point fonctionne exactement comme l'accès aux propriétés dans d'autres langages de programmation. Vous pouvez utiliser les valeurs accédées dans des expressions, les assigner à des variables ou les passer à des fonctions - elles se comportent exactement comme n'importe quelle autre valeur de ce type.

challenge icon

Défi

Facile

Vous recevrez trois entrées : un nom de modèle de voiture, l'année de la voiture (sous forme d'entier) et son kilométrage (sous forme d'entier). Définissez une structure Car avec trois champs : model de type String, year de type i32 et mileage de type i32. Créez une instance de cette structure en utilisant les valeurs d'entrée, puis accédez à chaque champ et affichez-le.

Exigences :

  • Définir une structure Car avec les champs : model: String, year: i32 et mileage: i32
  • Lire la première entrée comme étant le modèle de la voiture
  • Lire la deuxième entrée et la convertir en i32 pour l'année
  • Lire la troisième entrée et la convertir en i32 pour le kilométrage
  • Créer une instance de la structure Car avec ces valeurs
  • Utiliser la notation par point pour accéder à chaque champ et afficher les informations de la voiture dans le format exact indiqué ci-dessous

Entrée :

  • Première ligne : Modèle de la voiture (par exemple, Tesla Model 3)
  • Deuxième ligne : Année sous forme d'entier (par exemple, 2022)
  • Troisième ligne : Kilométrage sous forme d'entier (par exemple, 15000)

Sortie :

  • Première ligne : Car: [model]
  • Deuxième ligne : Year: [year]
  • Troisième ligne : Mileage: [mileage] km

Aide-mémoire

Pour accéder aux champs d'une instance de structure, utilisez la notation par point :

let product = Product {
    name: String::from("Laptop"),
    price: 999,
};

println!("Product: {}", product.name);
println!("Price: ${}", product.price);

La syntaxe est : instance_name.field_name. Les valeurs accédées peuvent être utilisées dans des expressions, assignées à des variables ou transmises à des fonctions.

Essayez vous-même

use std::io;

// TODO : Définir la structure Car ici avec les champs : model, year et mileage

fn main() {
    // Lire le modèle de la voiture
    let mut model = String::new();
    io::stdin().read_line(&mut model).expect("Failed to read line");
    let model = model.trim().to_string();
    
    // Lire l'année
    let mut year_input = String::new();
    io::stdin().read_line(&mut year_input).expect("Failed to read line");
    let year: i32 = year_input.trim().parse().expect("Invalid year");
    
    // Lire le kilométrage
    let mut mileage_input = String::new();
    io::stdin().read_line(&mut mileage_input).expect("Failed to read line");
    let mileage: i32 = mileage_input.trim().parse().expect("Invalid mileage");
    
    // TODO : Créer une instance de la structure Car en utilisant les valeurs saisies
    
    // TODO : Accéder à chaque champ et l'afficher au format requis
    // Car: [model]
    // Year: [year]
    // Mileage: [mileage] km
}
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