Structures tuple
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 25 sur 66.
Alors que les structures classiques utilisent des champs nommés, Rust propose un autre type appelé structs tuples. Celles-ci offrent une manière plus concise de créer des types personnalisés lorsque vous n'avez pas besoin de nommer chaque champ individuellement.
Une structure tuple combine les avantages de la création d'un nouveau type avec la simplicité d'un tuple. Vous la définissez en utilisant le mot-clé struct suivi du nom du type et des types de champs entre parenthèses :
struct Color(i32, i32, i32);Cela crée un type Color qui contient trois valeurs i32, représentant des valeurs de couleur RVB. Contrairement aux structures régulières, vous ne spécifiez pas de noms de champs - vous accédez aux valeurs par leur position, tout comme avec les tuples.
Pour créer une instance d'une structure tuple (tuple struct), vous fournissez les valeurs entre parenthèses :
let red = Color(255, 0, 0);Vous pouvez accéder aux champs individuels en utilisant la notation par points avec l'index du champ : red.0 vous donne la première valeur, red.1 la deuxième, et ainsi de suite.
Défi
FacileVous recevrez trois entrées : une valeur rouge (sous forme d'entier), une valeur verte (sous forme d'entier) et une valeur bleue (sous forme d'entier). Définissez une structure de tuple Color qui contient trois valeurs i32 représentant les composantes de couleur RVB. Créez une instance de cette structure de tuple en utilisant les valeurs d'entrée, puis accédez à chaque composante de couleur et affichez-la en utilisant la notation par index.
Exigences :
- Définissez une structure de tuple
Coloravec trois champsi32 - Lisez la première entrée et convertissez-la en
i32pour la valeur rouge - Lisez la deuxième entrée et convertissez-la en
i32pour la valeur verte - Lisez la troisième entrée et convertissez-la en
i32pour la valeur bleue - Créez une instance de la structure de tuple
Coloravec ces valeurs - Accédez à chaque champ en utilisant la notation par point avec des indices (0, 1, 2) et affichez les informations de couleur dans le format exact indiqué ci-dessous
Entrée :
- Première ligne : Valeur rouge sous forme d'entier (par exemple,
255) - Deuxième ligne : Valeur verte sous forme d'entier (par exemple,
128) - Troisième ligne : Valeur bleue sous forme d'entier (par exemple,
0)
Sortie :
- Première ligne :
Red: [red_value] - Deuxième ligne :
Green: [green_value] - Troisième ligne :
Blue: [blue_value]
Aide-mémoire
Une structure tuple (tuple struct) est une structure sans champs nommés. Elle combine les avantages de la création d'un nouveau type avec la simplicité d'un tuple.
Définissez une structure tuple en utilisant le mot-clé struct suivi du nom du type et des types de champs entre parenthèses :
struct Color(i32, i32, i32);Créez une instance en fournissant des valeurs entre parenthèses :
let red = Color(255, 0, 0);Accédez aux champs en utilisant la notation par point avec l'index du champ :
red.0 // première valeur
red.1 // deuxième valeur
red.2 // troisième valeurEssayez vous-même
use std::io;
// TODO: Définissez votre struct tuple Color ici
fn main() {
// Lire la valeur rouge
let mut red_input = String::new();
io::stdin().read_line(&mut red_input).expect("Failed to read line");
let red: i32 = red_input.trim().parse().expect("Invalid input");
// Lire la valeur verte
let mut green_input = String::new();
io::stdin().read_line(&mut green_input).expect("Failed to read line");
let green: i32 = green_input.trim().parse().expect("Invalid input");
// Lire la valeur bleue
let mut blue_input = String::new();
io::stdin().read_line(&mut blue_input).expect("Failed to read line");
let blue: i32 = blue_input.trim().parse().expect("Invalid input");
// TODO: Créer une instance de la struct tuple Color en utilisant les valeurs d'entrée
// TODO: Accéder à chaque composant de couleur et l'afficher en utilisant la notation par index
// Format: Red: [value], Green: [value], Blue: [value]
}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