Menu
Coddy logo textTech

Struct tupla

Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 25 di 66.

Mentre le struct normali usano campi con nome, Rust offre un altro tipo chiamato struct tupla. Queste offrono un modo più conciso per creare tipi personalizzati quando non hai bisogno di assegnare un nome a ciascun campo individualmente.

Una struct tupla combina i vantaggi della creazione di un nuovo tipo con la semplicità di una tupla. La definisci usando la parola chiave struct seguita dal nome del tipo e dai tipi dei campi tra parentesi:

struct Color(i32, i32, i32);

Questo crea un tipo Color che contiene tre valori i32, che rappresentano i valori dei colori RGB. A differenza delle struct normali, non specifichi i nomi dei campi: accedi ai valori in base alla loro posizione, proprio come con le tuple.

Per creare un'istanza di una struct tupla, fornisci i valori tra parentesi:

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

Puoi accedere ai singoli campi usando la notazione con il punto e l’indice del campo: red.0 ti dà il primo valore, red.1 il secondo e così via.

challenge icon

Sfida

Facile

Riceverai tre input: un valore rosso (come intero), un valore verde (come intero) e un valore blu (come intero). Definisci una struct tupla Color che contenga tre valori i32 che rappresentano le componenti del colore RGB. Crea un'istanza di questa struct tupla usando i valori di input, quindi accedi a ciascuna componente del colore e stampala usando la notazione con indice.

Requisiti:

  • Definisci una struct tupla Color con tre campi i32
  • Leggi il primo input e convertilo in i32 per il valore rosso
  • Leggi il secondo input e convertilo in i32 per il valore verde
  • Leggi il terzo input e convertilo in i32 per il valore blu
  • Crea un'istanza della struct tupla Color con questi valori
  • Accedi a ciascun campo usando la notazione con il punto e gli indici (0, 1, 2) e stampa le informazioni sul colore nel formato esatto mostrato di seguito

Input:

  • Prima riga: valore rosso come intero (ad es. 255)
  • Seconda riga: valore verde come intero (ad es. 128)
  • Terza riga: valore blu come intero (ad es. 0)

Output:

  • Prima riga: Red: [red_value]
  • Seconda riga: Green: [green_value]
  • Terza riga: Blue: [blue_value]

Provalo tu

use std::io;

// TODO: Definisci qui la struct tupla Color

fn main() {
    // Leggi il valore del rosso
    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");
    
    // Leggi il valore del verde
    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");
    
    // Leggi il valore del blu
    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: Crea un'istanza della struct tupla Color usando i valori di input
    
    // TODO: Accedi a ogni componente del colore tramite la notazione con indice e stampala
    // Formato: Red: [value], Green: [value], Blue: [value]
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Rust online