Accedere ai campi delle struct
Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 22 di 66.
Una volta creata un'istanza di una struct, hai bisogno di un modo per recuperare i valori memorizzati al suo interno. Rust usa la notazione con il punto per accedere ai singoli campi all'interno di una struct.
La sintassi è semplice: scrivi il nome dell’istanza della struct, seguito da un punto, poi il nome del campo a cui vuoi accedere:
let product = Product {
name: String::from("Laptop"),
price: 999,
};
println!("Product: {}", product.name);
println!("Price: ${}", product.price);Questa notazione con il punto funziona proprio come l'accesso alle proprietà in altri linguaggi di programmazione. Puoi usare i valori a cui accedi nelle espressioni, assegnarli a variabili o passarli a funzioni: si comportano esattamente come qualsiasi altro valore di quel tipo.
Sfida
FacileRiceverai tre input: il nome del modello di un'auto, l'anno dell'auto (come intero) e il suo chilometraggio (come intero). Definisci una struct Car con tre campi: model di tipo String, year di tipo i32 e mileage di tipo i32. Crea un'istanza di questa struct usando i valori di input, quindi accedi a ciascun campo e stampalo.
Requisiti:
- Definisci una struct
Carcon i campi:model: String,year: i32emileage: i32 - Leggi il primo input come modello dell'auto
- Leggi il secondo input e convertilo in
i32per l'anno - Leggi il terzo input e convertilo in
i32per il chilometraggio - Crea un'istanza della struct
Carcon questi valori - Usa la notazione con il punto per accedere a ciascun campo e stampa le informazioni sull'auto nel formato esatto mostrato di seguito
Input:
- Prima riga: modello dell'auto (ad es.,
Tesla Model 3) - Seconda riga: anno come intero (ad es.,
2022) - Terza riga: chilometraggio come intero (ad es.,
15000)
Output:
- Prima riga:
Car: [model] - Seconda riga:
Year: [year] - Terza riga:
Mileage: [mileage] km
Provalo tu
use std::io;
// TODO: Definisci qui la struct Car con i campi: model, year e mileage
fn main() {
// Leggi il modello dell'auto
let mut model = String::new();
io::stdin().read_line(&mut model).expect("Failed to read line");
let model = model.trim().to_string();
// Leggi l'anno
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");
// Leggi il chilometraggio
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: Crea un'istanza della struct Car usando i valori inseriti
// TODO: Accedi a ciascun campo e stampalo nel formato richiesto
// Auto: [model]
// Anno: [year]
// Chilometraggio: [mileage] km
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Flusso di controllo avanzato
L'espressione 'match'Corrispondenza di più valoriCorrispondenza di intervalliL'espressione 'if let'Cicli come espressioniRipasso - Parser di comandi semplice4Raggruppare i dati con le struct
Che cos'è una struct?Panoramica sulle structAccedere ai campi delle structStruct mutabiliStruct come parametri di funzioneStruct tuplaRiepilogo - Creare una struct Book2Introduzione ai vettori
Che cos'è un vettore?Creare un vettoreAggiungere elementi con pushAccedere agli elementi di un vettoreIterare su un vettoreIterazione mutabileRimuovere elementiRiepilogo - Tracker dei punteggi di base5Coppie chiave-valore con mappe hash
Che cos'è una mappa hash?Creare una mappa hashInserire coppie chiave-valoreAccedere ai valoriScorrere una mappa hashAggiornare un valoreRimuovere una coppiaRiepilogo - Contatore di parole8Progetto: inventario semplice degli articoli
Configurazione del progettoAggiungere un articoloControllare le scorteVendere un articoloMettere tutto insieme3Lista di attività da riga di comando
Configurazione del progettoAggiungere un'attivitàVisualizzare tutte le attivitàRimuovere un'attivitàCodice finaleEsercitati da solo: Compilatore Rust online