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.
Sfida
FacileRiceverai 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
Colorcon tre campii32 - Leggi il primo input e convertilo in
i32per il valore rosso - Leggi il secondo input e convertilo in
i32per il valore verde - Leggi il terzo input e convertilo in
i32per il valore blu - Crea un'istanza della struct tupla
Colorcon 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]
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Flusso di controllo avanzato
L'espressione 'match'Corrispondenza di più valoriCorrispondenza di intervalliL'espressione 'if let'Cicli come espressioniRipasso - Parser di comandi semplice4Raggruppare i dati con le struct
Che cos'è una struct?Panoramica sulle structAccedere ai campi delle structStruct mutabiliStruct come parametri di funzioneStruct tuplaRiepilogo - Creare una struct Book2Introduzione ai vettori
Che cos'è un vettore?Creare un vettoreAggiungere elementi con pushAccedere agli elementi di un vettoreIterare su un vettoreIterazione mutabileRimuovere elementiRiepilogo - Tracker dei punteggi di base5Coppie chiave-valore con mappe hash
Che cos'è una mappa hash?Creare una mappa hashInserire coppie chiave-valoreAccedere ai valoriScorrere una mappa hashAggiornare un valoreRimuovere una coppiaRiepilogo - Contatore di parole8Progetto: inventario semplice degli articoli
Configurazione del progettoAggiungere un articoloControllare le scorteVendere un articoloMettere tutto insieme3Lista di attività da riga di comando
Configurazione del progettoAggiungere un'attivitàVisualizzare tutte le attivitàRimuovere un'attivitàCodice finaleEsercitati da solo: Compilatore Rust online