Menu
Coddy logo textTech

Tupel-Structs

Teil des Abschnitts Logik & Kontrollfluss der Rust-Journey von Coddy. Lektion 25 von 66.

Während reguläre Structs benannte Felder verwenden, bietet Rust einen weiteren Typ namens Tupel-Structs an. Diese bieten eine prägnantere Möglichkeit, benutzerdefinierte Typen zu erstellen, wenn man die einzelnen Felder nicht einzeln benennen muss.

Eine Tupelstruktur vereint die Vorteile der Erstellung eines neuen Typs mit der Einfachheit eines Tupels. Du definierst sie mithilfe des Schlüsselworts struct, gefolgt vom Typnamen und den Feldtypen in Klammern:

struct Color(i32, i32, i32);

Dies erstellt einen Color-Typ, der drei i32-Werte enthält, die RGB-Farbwerte repräsentieren. Im Gegensatz zu regulären Structs geben Sie keine Feldnamen an – Sie greifen auf die Werte über ihre Position zu, genau wie bei Tupeln.

Um eine Instanz einer Tupelstruktur zu erstellen, gibst du Werte in Klammern an:

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

Sie können auf einzelne Felder über die Punktnotation mit dem Feldindex zugreifen: red.0 liefert Ihnen den ersten Wert, red.1 den zweiten und so weiter.

challenge icon

Aufgabe

Einfach

Sie erhalten drei Eingaben: einen Rotwert (als Ganzzahl), einen Grünwert (als Ganzzahl) und einen Blauwert (als Ganzzahl). Definieren Sie eine Color-Tupel-Struktur, die drei i32-Werte enthält, die RGB-Farbkomponenten darstellen. Erstellen Sie eine Instanz dieser Tupel-Struktur unter Verwendung der Eingabewerte, greifen Sie dann auf jede Farbkomponente mittels Index-Notation zu und geben Sie diese aus.

Anforderungen:

  • Definieren Sie eine Color-Tupel-Struktur mit drei i32-Feldern
  • Lesen Sie die erste Eingabe ein und konvertieren Sie diese in i32 für den Rotwert
  • Lesen Sie die zweite Eingabe ein und konvertieren Sie diese in i32 für den Grünwert
  • Lesen Sie die dritte Eingabe ein und konvertieren Sie diese in i32 für den Blauwert
  • Erstellen Sie eine Instanz der Color-Tupel-Struktur mit diesen Werten
  • Greifen Sie auf jedes Feld mittels Punktnotation mit Indizes (0, 1, 2) zu und geben Sie die Farbinformationen im unten gezeigten exakten Format aus

Eingabe:

  • Erste Zeile: Rotwert als Ganzzahl (z. B. 255)
  • Zweite Zeile: Grünwert als Ganzzahl (z. B. 128)
  • Dritte Zeile: Blauwert als Ganzzahl (z. B. 0)

Ausgabe:

  • Erste Zeile: Red: [red_value]
  • Zweite Zeile: Green: [green_value]
  • Dritte Zeile: Blue: [blue_value]

Probier es selbst

use std::io;

// TODO: Definiere hier deine Color-Tupel-Struktur

fn main() {
    // Rot-Wert einlesen
    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");
    
    // Grün-Wert einlesen
    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");
    
    // Blau-Wert einlesen
    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: Erstelle eine Instanz der Color-Tupel-Struktur unter Verwendung der Eingabewerte
    
    // TODO: Greife auf jede Farbkomponente über die Index-Notation zu und gib sie aus
    // Format: Red: [value], Green: [value], Blue: [value]
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Kontrollfluss

Übe selbstständig: Online-Rust-Compiler