Dostęp do pól struktury
Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 22 z 66.
Po utworzeniu instancji struktury potrzebujesz sposobu na pobranie zapisanych w niej wartości. Rust używa notacji kropkowej do uzyskiwania dostępu do poszczególnych pól struktury.
Składnia jest prosta: wpisujesz nazwę instancji struktury, następnie kropkę, a potem nazwę pola, do którego chcesz uzyskać dostęp:
let product = Product {
name: String::from("Laptop"),
price: 999,
};
println!("Product: {}", product.name);
println!("Price: ${}", product.price);Ta notacja kropkowa działa tak samo jak dostęp do właściwości w innych językach programowania. Możesz używać uzyskanych wartości w wyrażeniach, przypisywać je do zmiennych lub przekazywać do funkcji — zachowują się dokładnie tak jak każda inna wartość tego typu.
Wyzwanie
ŁatwyOtrzymasz trzy dane wejściowe: nazwę modelu samochodu, rok produkcji samochodu (jako liczbę całkowitą) oraz jego przebieg (jako liczbę całkowitą). Zdefiniuj strukturę Car z trzema polami: model typu String, year typu i32 oraz mileage typu i32. Utwórz instancję tej struktury, używając wartości wejściowych, a następnie uzyskaj dostęp do każdego pola i je wypisz.
Wymagania:
- Zdefiniuj strukturę
Carz polami:model: String,year: i32orazmileage: i32 - Wczytaj pierwszą daną wejściową jako model samochodu
- Wczytaj drugą daną wejściową i przekonwertuj ją na
i32, aby uzyskać rok produkcji - Wczytaj trzecią daną wejściową i przekonwertuj ją na
i32, aby uzyskać przebieg - Utwórz instancję struktury
Carz tymi wartościami - Użyj notacji kropkowej, aby uzyskać dostęp do każdego pola i wypisz informacje o samochodzie dokładnie w formacie pokazanym poniżej
Dane wejściowe:
- Pierwszy wiersz: model samochodu (np.
Tesla Model 3) - Drugi wiersz: rok produkcji jako liczba całkowita (np.
2022) - Trzeci wiersz: przebieg jako liczba całkowita (np.
15000)
Dane wyjściowe:
- Pierwszy wiersz:
Car: [model] - Drugi wiersz:
Year: [year] - Trzeci wiersz:
Mileage: [mileage] km
Spróbuj swoich sił
use std::io;
// TODO: Zdefiniuj tutaj strukturę Car z polami: model, year i mileage
fn main() {
// Wczytaj model samochodu
let mut model = String::new();
io::stdin().read_line(&mut model).expect("Failed to read line");
let model = model.trim().to_string();
// Wczytaj rok produkcji
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");
// Wczytaj przebieg
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: Utwórz instancję struktury Car na podstawie wprowadzonych wartości
// TODO: Uzyskaj dostęp do każdego pola i wypisz je w wymaganym formacie
// Car: [model]
// Year: [year]
// Mileage: [mileage] km
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane sterowanie przepływem
Wyrażenie „match”Dopasowywanie wielu wartościDopasowywanie zakresówWyrażenie „if let”Pętle jako wyrażeniaPodsumowanie — prosty parser poleceń4Grupowanie danych za pomocą struktur
Czym jest struktura?Przegląd strukturDostęp do pól strukturyModyfikowalne strukturyStruktury jako parametry funkcjiStruktury krotkowePodsumowanie — utwórz strukturę Book2Wprowadzenie do wektorów
Czym jest wektor?Tworzenie wektoraDodawanie elementów za pomocą pushDostęp do elementów wektoraIterowanie po wektorzeIterowanie z możliwością modyfikacjiUsuwanie elementówPodsumowanie — prosty licznik punktów5Pary klucz–wartość z mapami hashującymi
Czym jest mapa haszująca?Tworzenie mapy haszującejWstawianie par klucz–wartośćDostęp do wartościIterowanie po mapie haszującejAktualizowanie wartościUsuwanie paryPodsumowanie – licznik słów8Projekt: Prosty system inwentaryzacji
Konfiguracja projektuDodawanie produktuSprawdzanie stanu magazynowegoSprzedaż produktuŁączenie wszystkiego w całość3Lista zadań w wierszu poleceń
Konfiguracja projektuDodawanie zadaniaWyświetlanie wszystkich zadańUsuwanie zadaniaKońcowy kodPoćwicz samodzielnie: Kompilator Rust online