Nozioni di base sui moduli
Fa parte della sezione Programmazione orientata agli oggetti del percorso Rust di Coddy. Lezione 8 di 61.
Man mano che i tuoi programmi Rust crescono, tenere tutto in un unico file diventa scomodo. Il sistema di moduli di Rust ti permette di organizzare il codice spostando le struct e le relative implementazioni in file separati.
Per creare un modulo in un file separato, basta creare un nuovo file con il nome desiderato per il modulo. Ad esempio, per creare un modulo player, creeresti un file chiamato player.rs:
// player.rs
struct Player {
name: String,
score: u32,
}
impl Player {
fn new(name: String) -> Player {
Player { name, score: 0 }
}
}
Per usare questo modulo nel tuo file principale, lo dichiari con la parola chiave mod. Questo dice a Rust di cercare un file con quel nome:
// main.rs
mod player;
fn main() {
// Ora possiamo accedere agli elementi del modulo player
}
La dichiarazione mod player; dice a Rust di trovare e includere il contenuto di player.rs. Pensala come un collegamento del codice di quel file al tuo programma. Il nome del modulo deve corrispondere esattamente al nome del file (senza l’estensione .rs).
Questa separazione mantiene insieme il codice correlato. La definizione della tua struct e tutti i suoi metodi si trovano in un unico file dedicato, mentre main.rs resta concentrato sul punto di ingresso del programma. Nella prossima lezione imparerai come accedere concretamente agli elementi che hai inserito nei moduli.
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Metodi e comportamento
Introduzione ai blocchi implIl parametro selfMetodi mutabiliFunzioni associateBlocchi impl multipliConcatenamento di metodiRiepilogo - Azioni sul rettangolo4Progetto: animale domestico virtuale
Definire l'animaleNutrire l'animale7Trait standard
Il trait DebugIl trait DisplayClone e CopyTrait di uguaglianzaRiepilogo - Punto stampabile10Progetto: sistema di documenti
Il trait DrawComponente di testo2Incapsulamento e moduli
Nozioni di base sui moduliLa parola chiave publicCampi privatiGetterSetterRiepilogo - Armadietto sicuro5Generics
Struct genericheMetodi genericiPiù tipi genericiFunzioni genericheRipasso - Punto di coordinate8I Trait come vincoli
Sintassi dei vincoli sui traitVincoli multipliLa clausola whereRestituire tipi con i traitRiepilogo - Stampante generica11Modelli di progettazione in Rust
Pattern NewtypeComposizioneIl trait DropFrom e IntoRipasso - Mock con smart pointer3Enumerazioni avanzate
Enumerazioni con datiMetodi sulle enumerazioniCorrispondenza delle varianti con datiL'enumerazione Option ripresaRiepilogo - enumerazione Shape6Definizione dei trait
Che cos’è un trait?Implementare i traitImplementazioni predefiniteSovrascrivere le implementazioni predefiniteTrait con parametriRiepilogo - Lettore multimedialeEsercitati da solo: Compilatore Rust online