Riepilogo - Liste dinamiche
Fa parte della sezione Fondamenti del percorso GO di Coddy. Lezione 83 di 109.
Sfida
MedioFacciamo pratica con le slice in Go creando un semplice gestore di liste della spesa!
Il tuo compito è implementare diverse funzioni che modificano una lista della spesa:
addItems: Aggiungi nuovi articoli alla lista della spesaremoveItem: Rimuovi un articolo dalla lista in base all'indicefindExpensiveItems: Trova gli articoli con prezzi superiori a una sogliacalculateTotalCost: Calcola il costo totale di tutti gli articoli
Ogni articolo della lista della spesa è rappresentato da una stringa (nome) e da un float64 (prezzo). La funzione main mostra tutte queste operazioni in azione.
Provalo tu
package main
import "fmt"
// addItems aggiunge nuovi articoli e i relativi prezzi alla lista della spesa
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
// Il tuo codice qui
return names, prices
}
// removeItem rimuove un articolo all'indice specificato
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
// Il tuo codice qui
return names, prices
}
// findExpensiveItems restituisce gli articoli con prezzi superiori alla soglia
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
// Il tuo codice qui
return nil
}
// calculateTotalCost restituisce la somma di tutti i prezzi
func calculateTotalCost(prices []float64) float64 {
// Il tuo codice qui
return 0
}
func main() {
// Inizializza le liste della spesa vuote
names := []string{}
prices := []float64{}
// Aggiungi gli articoli iniziali
initialNames := []string{"Apples", "Milk", "Bread"}
initialPrices := []float64{2.99, 3.49, 2.29}
names, prices = addItems(names, prices, initialNames, initialPrices)
// Stampa la lista della spesa iniziale
fmt.Println("Initial Shopping List:")
for i := range names {
fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
}
// Calcola e stampa il costo totale
total := calculateTotalCost(prices)
fmt.Printf("\nTotal Cost: $%.2f\n", total)
// Trova e stampa gli articoli costosi
priceThreshold := 3.00
expensiveItems := findExpensiveItems(names, prices, priceThreshold)
fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
for _, item := range expensiveItems {
fmt.Println(item)
}
// Aggiungi un nuovo articolo
names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
// Rimuovi un articolo
names, prices = removeItem(names, prices, 1)
fmt.Println("\nRemoved item at index 1")
// Stampa la lista della spesa finale
fmt.Println("\nFinal Shopping List:")
for i := range names {
fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
}
}Tutte le lezioni di Fondamenti
4Operatori di confronto e logici
Operatori di confronto - Parte 1Operatori di confronto - Parte 2Operatore AND logicoOperatore OR logicoOperatore NOT logicoNozioni di base sulla precedenza degli operatoriRiepilogo - Eseguire confronti7Flusso di controllo: cicli
Come funziona il ciclo `for`Ciclo `for` - baseCiclo `for` - solo condizioneLa parola chiave `break`La parola chiave `continue`Cicli annidatiRiepilogo - ripetere le azioni2Variabili e tipi di dati di base
Che cos'è una variabileInferenza del tipo con `:=`Numeri interi (int)Numeri in virgola mobileValori booleaniStringheValori zeroCostantiConvenzioni di denominazioneRiepilogo: variabili e tipi5Input/output di base
Output formattatoVerbi di formattazioneVisualizzazione dei tipiAcquisire input di base dall’utenteRiepilogo - Input e output8Funzioni
Capire le funzioniDichiarare una funzioneChiamare le funzioniParametri delle funzioniRestituire un singolo valoreRestituire più valoriValori restituiti con nomeFondamenti dell'ambito delle funzioniRiepilogo - Creare codice riutilizzabile3Operatori di base
Operatori aritmeticiOperatore di divisioneL'operatore moduloOperatore di assegnazioneOperatori di assegnazione compostaIncremento e decrementoRiepilogo - Calcoli6Flusso di controllo: condizioni
L'istruzione `if`La parola chiave `else`La parola chiave `else if`Ombreggiamento delle variabili in `if`Inizializzare le variabiliL'istruzione `switch``switch` con espressioni`switch` senza espressioneLa parola chiave `fallthrough`Riepilogo: prendere decisioni9Puntatori
Che cos’è un puntatore?Dichiarare variabili puntatoreL’operatore indirizzoDereferenziare i puntatoriUsare i puntatori nelle funzioniPuntatori nilRipasso - Capire i puntatori12Tipi compositi: mappe
Introduzione alle mappeDichiarare i letterali delle mappeCreare mappe con `make`Aggiungere e aggiornare coppie chiave-valoreAccedere ai valori delle mappeVerificare l'esistenza di una chiaveEliminare elementi dalle mappeLunghezza delle mappeIterare sulle mappeRiepilogo - Archiviazione chiave-valoreEsercitati da solo: Compilatore Go online