Bases des modules
Fait partie de la section Programmation Orientée Objet du Journey Rust de Coddy. Leçon 8 sur 61.
À mesure que vos programmes Rust prennent de l’ampleur, tout garder dans un seul fichier devient difficile à gérer. Le système de modules de Rust vous permet d’organiser le code en déplaçant les structures et leurs implémentations dans des fichiers distincts.
Pour créer un module dans un fichier séparé, il vous suffit de créer un nouveau fichier portant le nom de module souhaité. Par exemple, pour créer un module player, vous créeriez un fichier appelé player.rs :
// player.rs
struct Player {
name: String,
score: u32,
}
impl Player {
fn new(name: String) -> Player {
Player { name, score: 0 }
}
}
Pour utiliser ce module dans votre fichier main, vous le déclarez avec le mot-clé mod. Cela indique à Rust de rechercher un fichier portant ce nom :
// main.rs
mod player;
fn main() {
// Nous pouvons maintenant accéder aux éléments du module player
}
La déclaration mod player; indique à Rust de trouver et d’inclure le contenu de player.rs. Considère-la comme une façon de relier le code de ce fichier à ton programme. Le nom du module doit correspondre exactement au nom du fichier (sans l’extension .rs).
Cette séparation permet de regrouper le code associé. La définition de votre structure et toutes ses méthodes se trouvent dans un fichier dédié, tandis que main.rs reste consacré au point d’entrée du programme. Dans la prochaine leçon, vous apprendrez comment accéder réellement aux éléments que vous avez placés dans des modules.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation Orientée Objet
1Méthodes et comportement
Introduction aux blocs d'implémentationLe paramètre SelfMéthodes mutablesFonctions associéesBlocs d'implémentation multiplesChaînage de méthodesRécapitulatif - Actions sur le rectangle4Projet : Animal virtuel
Définir l'animalNourrir l'animal7Traits standards
Le trait DebugLe trait DisplayClone et CopyLes traits d'égalitéRécapitulatif - Point affichable10Projet : Système de documents
Le trait DrawComposant texte2Encapsulation et modules
Bases des modulesLe mot-clé publicChamps privésGettersSettersRécapitulatif - Casier sécurisé5Généricité
Structures génériquesMéthodes génériquesPlusieurs types génériquesFonctions génériquesRécapitulatif - Point de coordonnées8Les Traits comme contraintes
Syntaxe des contraintes de traitContraintes multiplesLa clause whereRetourner des types avec des traitsRécapitulatif - Afficheur générique11Design Patterns en Rust
Le pattern NewtypeCompositionLe trait DropFrom et IntoRécapitulatif - Mock de Smart Pointer3Enums avancées
Enums avec donnéesMéthodes sur les EnumsMatching des variantes de donnéesL'Enum Option revisitéeRécapitulatif - Enum Shape6Définition des Traits
Qu'est-ce qu'un Trait ?Implémenter des TraitsImplémentations par défautRedéfinir les comportements par défautTraits avec paramètresRécapitulatif - Lecteur multimédiaEntraînez-vous par vous-même : Compilateur Rust en ligne