Menu
Coddy logo textTech

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.

challenge icon

Sfida

Facile

Riceverai 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 Car con i campi: model: String, year: i32 e mileage: i32
  • Leggi il primo input come modello dell'auto
  • Leggi il secondo input e convertilo in i32 per l'anno
  • Leggi il terzo input e convertilo in i32 per il chilometraggio
  • Crea un'istanza della struct Car con 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
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Rust online