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.
Défi
FacileVous 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
Caravec les champs :model: String,year: i32etmileage: 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
i32pour l'année - Lire la troisième entrée et la convertir en
i32pour le kilométrage - Créer une instance de la structure
Caravec 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
}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
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final