Menu
Coddy logo textTech

Przegląd struktur

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 21 z 66.

Skoro już wiesz, czym są struktury, nauczmy się, jak je tworzyć i używać. Obejmuje to dwa kroki: najpierw zdefiniowanie struktury struktury, a następnie utworzenie jej instancji.

Aby zdefiniować strukturę, użyj słowa kluczowego struct, a następnie podaj nazwę struktury i jej pola w nawiasach klamrowych. Każde pole ma nazwę i typ:

struct User {
    username: String,
    active: bool,
}

Tworzy to szablon struktury User z dwoma polami: username typu String oraz active typu bool.

Konwencja nazewnictwa: Nazwy struktur w Rust powinny być zapisane w PascalCase (nazywanym też UpperCamelCase), co oznacza, że każde słowo zaczyna się wielką literą, na przykład User, ProductItem lub ShoppingCart. Rust wyświetli ostrzeżenie, jeśli nie będziesz przestrzegać tej konwencji.

Po zdefiniowaniu struktury możesz tworzyć jej instancje, podając wartości dla każdego pola:

let user1 = User {
    username: String::from("alice"),
    active: true,
};

Zwróć uwagę, że podajesz nazwę struktury, a po niej nawiasy klamrowe zawierające nazwy poszczególnych pól, dwukropek i ich wartości. Kolejność pól nie musi być zgodna z kolejnością ich definicji.

Aby uzyskać dostęp do pól instancji struktury, użyj notacji kropkowej: wpisz nazwę instancji, a następnie kropkę i nazwę pola:

println!("Username: {}", user1.username);
println!("Active: {}", user1.active);

Tutaj user1.username odczytuje pole username zmiennej user1, a user1.active odczytuje pole active. Możesz używać tych wartości pól wszędzie tam, gdzie używałbyś zwykłej zmiennej.

challenge icon

Wyzwanie

Łatwy

Otrzymasz trzy dane wejściowe: nazwę produktu, cenę (jako liczbę dziesiętną) i ilość w magazynie (jako liczbę całkowitą). Zdefiniuj strukturę Product z trzema polami: name typu String, price typu f64 oraz stock typu i32. Następnie utwórz instancję tej struktury, używając wartości wejściowych, i wyświetl informacje o produkcie.

Wymagania:

  • Zdefiniuj strukturę Product z polami: name: String, price: f64 oraz stock: i32
  • Odczytaj pierwsze dane wejściowe jako nazwę produktu
  • Odczytaj drugze dane wejściowe i przekonwertuj je na f64, aby uzyskać cenę
  • Odczytaj trzecie dane wejściowe i przekonwertuj je na i32, aby uzyskać ilość w magazynie
  • Utwórz instancję struktury Product z tymi wartościami
  • Wyświetl informacje o produkcie dokładnie w formacie pokazanym poniżej

Dane wejściowe:

  • Pierwszy wiersz: nazwa produktu (np. Laptop)
  • Drugi wiersz: cena jako liczba dziesiętna (np. 999.99)
  • Trzeci wiersz: ilość w magazynie jako liczba całkowita (np. 15)

Dane wyjściowe:

  • Pierwszy wiersz: Product: [name]
  • Drugi wiersz: Price: $[price]
  • Trzeci wiersz: Stock: [quantity]

Spróbuj swoich sił

use std::io;

// TODO: Zdefiniuj tutaj strukturę Product


fn main() {
    // Wczytaj nazwę produktu
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed to read line");
    let name = name.trim().to_string();
    
    // Wczytaj cenę
    let mut price_input = String::new();
    io::stdin().read_line(&mut price_input).expect("Failed to read line");
    let price: f64 = price_input.trim().parse().expect("Failed to parse price");
    
    // Wczytaj ilość sztuk w magazynie
    let mut stock_input = String::new();
    io::stdin().read_line(&mut stock_input).expect("Failed to read line");
    let stock: i32 = stock_input.trim().parse().expect("Failed to parse stock");
    
    // TODO: Utwórz instancję struktury Product, używając wartości wejściowych
    
    
    // TODO: Wypisz informacje o produkcie w wymaganym formacie
    
}
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