Ripasso - Validatore del profilo utente
Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 65 di 66.
Sfida
FacileRiceverai tre input che rappresentano un profilo utente. Il primo input è un nome utente, il secondo è un'età e il terzo è un indirizzo email. Convalida il profilo secondo le seguenti regole e stampa il messaggio appropriato:
Regole di convalida:
- Il nome utente deve essere lungo almeno 3 caratteri
- L'età deve essere compresa tra 13 e 120 (inclusi)
- L'email deve contenere il simbolo
@
Requisiti:
- Leggi l'input del nome utente e rimuovi gli spazi iniziali e finali
- Leggi l'input dell'età, rimuovi gli spazi iniziali e finali e analizzalo come
i32 - Leggi l'input dell'email e rimuovi gli spazi iniziali e finali
- Controlla che la lunghezza del nome utente sia di almeno 3 caratteri
- Controlla che l'età rientri nell'intervallo da 13 a 120 (usa
matchcon intervalli) - Controlla che l'email contenga il carattere
@(usa il metodo.contains()) - Se tutte le convalide hanno esito positivo, stampa:
Valid profile - Se il nome utente è troppo corto, stampa:
Invalid username - Se l'età è fuori dall'intervallo, stampa:
Invalid age - Se l'email non contiene
@, stampa:Invalid email - Controlla le convalide in quest'ordine: prima il nome utente, poi l'età e infine l'email
Input:
- Prima riga: un nome utente (ad es.,
alice123) - Seconda riga: un'età (ad es.,
25) - Terza riga: un indirizzo email (ad es.,
alice@example.com)
Output:
- Uno tra:
Valid profile,Invalid username,Invalid ageoInvalid email
Provalo tu
use std::io;
fn main() {
// Leggi l'input di username
let mut username = String::new();
io::stdin().read_line(&mut username).expect("Failed to read line");
let username = username.trim();
// Leggi l'input dell'età
let mut age_input = String::new();
io::stdin().read_line(&mut age_input).expect("Failed to read line");
let age: i32 = age_input.trim().parse().expect("Failed to parse age");
// Leggi l'input di email
let mut email = String::new();
io::stdin().read_line(&mut email).expect("Failed to read line");
let email = email.trim();
// TODO: Scrivi il tuo codice qui sotto per convalidare il profilo
// Controlla la lunghezza di username, l'intervallo di età e il formato di email
// Stampa il messaggio appropriato in base ai risultati della convalida
}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 insieme11Sfide finali
Ripasso - Elementi uniciRipasso - Validatore del profilo utenteRipasso - Riepilogo dei voti3Lista 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