Menu
Coddy logo textTech

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.

challenge icon

Wyzwanie

Łatwy

Otrzymasz 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ę Car z polami: model: String, year: i32 oraz mileage: 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 Car z 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
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator Rust online