Menu
Coddy logo textTech

Struktury krotkowe

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

Podczas gdy zwykłe struktury używają nazwanych pól, Rust oferuje inny typ, nazywany strukturami krotkowymi. Pozwalają one zwięźlej tworzyć własne typy, gdy nie musisz osobno nazywać każdego pola.

Struktura krotkowa łączy zalety tworzenia nowego typu z prostotą krotki. Definiujesz ją za pomocą słowa kluczowego struct, po którym podajesz nazwę typu i typy pól w nawiasach:

struct Color(i32, i32, i32);

Tworzy to typ Color, który przechowuje trzy wartości i32, reprezentujące wartości kolorów RGB. W przeciwieństwie do zwykłych struktur nie określasz nazw pól — uzyskujesz dostęp do wartości na podstawie ich pozycji, tak jak w przypadku krotek.

Aby utworzyć instancję krotki zdefiniowanej jako struktura, podajesz wartości w nawiasach:

let red = Color(255, 0, 0);

Możesz uzyskać dostęp do poszczególnych pól, używając notacji kropkowej z indeksem pola: red.0 daje pierwszą wartość, red.1 drugą i tak dalej.

challenge icon

Wyzwanie

Łatwy

Otrzymasz trzy dane wejściowe: wartość czerwoną (jako liczbę całkowitą), wartość zieloną (jako liczbę całkowitą) i wartość niebieską (jako liczbę całkowitą). Zdefiniuj strukturę krotkową Color, która przechowuje trzy wartości i32 reprezentujące składowe koloru RGB. Utwórz instancję tej struktury krotkowej, używając wartości wejściowych, a następnie uzyskaj dostęp do każdej składowej koloru i wypisz ją, używając notacji indeksowej.

Wymagania:

  • Zdefiniuj strukturę krotkową Color z trzema polami typu i32
  • Odczytaj pierwszą wartość wejściową i przekonwertuj ją na i32 jako wartość czerwoną
  • Odczytaj drugą wartość wejściową i przekonwertuj ją na i32 jako wartość zieloną
  • Odczytaj trzecią wartość wejściową i przekonwertuj ją na i32 jako wartość niebieską
  • Utwórz instancję struktury krotkowej Color z tymi wartościami
  • Uzyskaj dostęp do każdego pola za pomocą notacji kropkowej z indeksami (0, 1, 2) i wypisz informacje o kolorze w dokładnym formacie pokazanym poniżej

Dane wejściowe:

  • Pierwsza linia: wartość czerwona jako liczba całkowita (np. 255)
  • Druga linia: wartość zielona jako liczba całkowita (np. 128)
  • Trzecia linia: wartość niebieska jako liczba całkowita (np. 0)

Dane wyjściowe:

  • Pierwsza linia: Red: [red_value]
  • Druga linia: Green: [green_value]
  • Trzecia linia: Blue: [blue_value]

Spróbuj swoich sił

use std::io;

// TODO: Zdefiniuj tutaj strukturę krotkową Color

fn main() {
    // Odczytaj wartość składowej czerwonej
    let mut red_input = String::new();
    io::stdin().read_line(&mut red_input).expect("Failed to read line");
    let red: i32 = red_input.trim().parse().expect("Invalid input");
    
    // Odczytaj wartość składowej zielonej
    let mut green_input = String::new();
    io::stdin().read_line(&mut green_input).expect("Failed to read line");
    let green: i32 = green_input.trim().parse().expect("Invalid input");
    
    // Odczytaj wartość składowej niebieskiej
    let mut blue_input = String::new();
    io::stdin().read_line(&mut blue_input).expect("Failed to read line");
    let blue: i32 = blue_input.trim().parse().expect("Invalid input");
    
    // TODO: Utwórz instancję struktury krotkowej Color, używając wartości wejściowych
    
    // TODO: Uzyskaj dostęp do każdej składowej koloru za pomocą indeksu i ją wypisz
    // Format: Red: [value], Green: [value], Blue: [value]
}
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