Zugriff auf Struct-Felder
Teil des Abschnitts Logik & Kontrollfluss der Rust-Journey von Coddy. Lektion 22 von 66.
Sobald du eine Struct-Instanz erstellt hast, benötigst du eine Möglichkeit, die darin gespeicherten Werte abzurufen. Rust verwendet die Punktnotation, um auf einzelne Felder innerhalb einer Struct zuzugreifen.
Die Syntax ist unkompliziert: Du schreibst den Namen der Struct-Instanz, gefolgt von einem Punkt und anschließend dem Feldnamen, auf den du zugreifen möchtest:
let product = Product {
name: String::from("Laptop"),
price: 999,
};
println!("Product: {}", product.name);
println!("Price: ${}", product.price);Diese Punktnotation funktioniert genau wie der Zugriff auf Eigenschaften in anderen Programmiersprachen. Sie können die abgerufenen Werte in Ausdrücken verwenden, sie Variablen zuweisen oder sie an Funktionen übergeben – sie verhalten sich genau wie jeder andere Wert dieses Typs.
Aufgabe
EinfachDu erhältst drei Eingaben: einen Fahrzeugmodellnamen, das Baujahr des Fahrzeugs (als Ganzzahl) und dessen Kilometerstand (als Ganzzahl). Definiere ein Car-Struct mit drei Feldern: model vom Typ String, year vom Typ i32 und mileage vom Typ i32. Erstelle mithilfe der Eingabewerte eine Instanz dieses Structs und greife anschließend auf jedes Feld zu und gib es aus.
Anforderungen:
- Definiere ein
Car-Struct mit den Feldern:model: String,year: i32undmileage: i32 - Lies die erste Eingabe als Fahrzeugmodell ein
- Lies die zweite Eingabe ein und konvertiere sie für das Baujahr in
i32 - Lies die dritte Eingabe ein und konvertiere sie für den Kilometerstand in
i32 - Erstelle mit diesen Werten eine Instanz des
Car-Structs - Verwende die Punktnotation, um auf jedes Feld zuzugreifen, und gib die Fahrzeuginformationen exakt im unten gezeigten Format aus
Eingabe:
- Erste Zeile: Fahrzeugmodell (z. B.
Tesla Model 3) - Zweite Zeile: Baujahr als Ganzzahl (z. B.
2022) - Dritte Zeile: Kilometerstand als Ganzzahl (z. B.
15000)
Ausgabe:
- Erste Zeile:
Car: [model] - Zweite Zeile:
Year: [year] - Dritte Zeile:
Mileage: [mileage] km
Probier es selbst
use std::io;
// TODO: Definieren Sie hier die Car-Struktur mit den Feldern: model, year und mileage
fn main() {
// Das Automodell einlesen
let mut model = String::new();
io::stdin().read_line(&mut model).expect("Failed to read line");
let model = model.trim().to_string();
// Das Jahr einlesen
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");
// Den Kilometerstand einlesen
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: Erstellen Sie eine Instanz der Car-Struktur unter Verwendung der Eingabewerte
// TODO: Greifen Sie auf jedes Feld zu und geben Sie es im erforderlichen Format aus
// Car: [model]
// Year: [year]
// Mileage: [mileage] km
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
1Fortgeschrittener Kontrollfluss
Der 'match'-AusdruckAbgleichen mehrerer WerteBereiche abgleichenDer 'if let'-AusdruckSchleifen als AusdrückeRückblick – Einfacher Befehls-Parser4Daten gruppieren mit Structs
Was ist ein Struct?Übersicht über StructsZugriff auf Struct-FelderVeränderbare StructsStructs als FunktionsparameterTupel-StructsZusammenfassung – Ein Buch-Struct erstellen2Einführung in Vektoren
Was ist ein Vektor?Einen Vektor erstellenElemente mit push hinzufügenZugriff auf Vektor-ElementeÜber einen Vektor iterierenVeränderliche IterationElemente entfernenZusammenfassung – Einfacher Score-Tracker5Schlüssel-Wert-Paare mit Hash Maps
Was ist eine Hash Map?Erstellen einer Hash MapEinfügen von Schlüssel-Wert-PaarenZugreifen auf WerteIterieren über eine Hash MapAktualisieren eines WertesEntfernen eines PaaresZusammenfassung – Wortzähler8Projekt: Einfaches Artikelinventar
Projekt-SetupEinen Artikel hinzufügenLagerbestand prüfenEinen Artikel verkaufenAlles zusammenfügen11Abschluss-Herausforderungen
Wiederholung - Einzigartige ElementeWiederholung - Benutzerprofil-ValidatorWiederholung - Noten-Zusammenfassung3Kommandozeilen-To-Do-Liste
Projekt-SetupEine Aufgabe hinzufügenAlle Aufgaben anzeigenEine Aufgabe entfernenFinaler CodeÜbe selbstständig: Online-Rust-Compiler