Sfida: trova il prodotto
Fa parte della sezione Fondamenti del percorso Dart di Coddy. Lezione 94 di 94.
Sfida
FacileIn questa sfida, ti eserciterai a usare il metodo find con le liste per individuare elementi specifici in base a determinate condizioni.
Hai una lista di prodotti in un carrello, rappresentati come mappe con nome, prezzo e quantità. Il tuo compito è completare la funzione findProduct che cerca un prodotto nel carrello in base al nome.
La funzione dovrebbe restituire il primo prodotto che corrisponde al nome indicato, oppure null se non viene trovata alcuna corrispondenza.
Completa il codice per implementare correttamente questa funzionalità di ricerca.
Provalo tu
void main() {
// Carrello con prodotti
List<Map<String, dynamic>> shoppingCart = [
{'name': 'Laptop', 'price': 999.99, 'quantity': 1},
{'name': 'Headphones', 'price': 59.99, 'quantity': 2},
{'name': 'Mouse', 'price': 24.99, 'quantity': 1},
{'name': 'Keyboard', 'price': 49.99, 'quantity': 1}
];
// Verifica la funzione findProduct
Map<String, dynamic>? foundProduct = findProduct(shoppingCart, 'Headphones');
if (foundProduct != null) {
print('Found: ${foundProduct['name']} - \$${foundProduct['price']} (Quantity: ${foundProduct['quantity']})');
} else {
print('Product not found');
}
// Verifica con un prodotto che non esiste
foundProduct = findProduct(shoppingCart, 'Monitor');
if (foundProduct != null) {
print('Found: ${foundProduct['name']} - \$${foundProduct['price']} (Quantity: ${foundProduct['quantity']})');
} else {
print('Product not found');
}
}
// TODO: Completa questa funzione per trovare un prodotto per nome
Map<String, dynamic>? findProduct(List<Map<String, dynamic>> cart, String productName) {
// TODO: Scorri il carrello e restituisci il primo prodotto che corrisponde a productName
// TODO: Restituisci null se non viene trovato alcun prodotto corrispondente
}Tutte le lezioni di Fondamenti
4Operatori - Parte 2
Operatori di confrontoAND logicoOR logicoNOT logicoOperatori di verifica del tipoRiepilogo - Effettuare confronti7Lavorare con le stringhe
Concatenazione di stringheInterpolazione di stringheStringhe multilineaProprietà delle stringheMetodi di base delle stringhe10Collezioni - Nozioni di base sulle mappe
Che cosa sono le mappe?Creare una mappaAccedere ai valori tramite chiaveCoppie chiave-valoreOttenere la dimensione della mappaOttenere le chiaviOttenere i valoriVerificare se una chiave esiste13Sicurezza sui valori null in dettaglio
Capire i valori nullTipi nullableTipi non nullableOperatore di asserzione nullInizializzazione tardivaRiepilogo - Gestire i valori null in sicurezza2Variabili e tipi di dati di base
Che cosa sono le variabili?StringheNumeri interi (int)Numeri double (double)Valori booleani (bool)Inferenza del tipo con 'var'Variabili finaliVariabili costantiConvenzioni di denominazioneNull safety di baseRiepilogo - Dichiarazione delle variabili8Flusso di controllo - Cicli
Il ciclo 'for'Il ciclo 'while'Il ciclo 'do-while'Uso di 'break' nei cicliUso di 'continue' nei cicliRipasso - Ripetere il codice3Operatori Parte 1
Operatori aritmeticiDivisione interaOperatore moduloIncremento e decrementoAbbreviazioni di assegnazioneRiepilogo - Calcoli semplici6Flusso di controllo - prendere decisioni
L'istruzione 'if'L'istruzione 'else'L'istruzione 'else if'Ripasso - decisioni sempliciIstruzioni 'if' annidateL'istruzione 'switch'9Collezioni - Fondamenti delle liste
Cosa sono le liste?Creare una listaAccedere tramite indiceOttenere la lunghezza di una listaAggiungere elementiRimuovere elementiVerificare se una lista è vuotaScorrere una lista12Funzioni avanzate
Parametri posizionali opzionaliParametri con nomeParametri con nome obbligatoriValori predefiniti dei parametriRiepilogo - Parametri delle funzioni15Progetto: Calcolatrice semplice
ConfigurazioneDichiarare un numeroEsercitati da solo: Compilatore Dart online