Riepilogo - Archiviazione chiave-valore
Fa parte della sezione Fondamenti del percorso GO di Coddy. Lezione 93 di 109.
Sfida
FacileFacciamo pratica con le mappe usando un semplice contatore di parole!
Il tuo compito è implementare un programma che conta quante volte appare ogni parola in un elenco di parole.
Requisiti:
- Completa la funzione
addWord()che aggiunge una parola alla mappa del contatore - Completa la funzione
getCount()che restituisce il conteggio di una parola specifica - Completa la funzione
removeWord()che rimuove una parola dal contatore
Questo è un semplice ripasso di come usare le mappe per memorizzare coppie chiave-valore.
Nota: per coerenza, l'output mostrerà i conteggi delle parole in ordine alfabetico.
Provalo tu
package main
import (
"fmt"
"sort"
)
// addWord aggiunge una parola alla mappa dei conteggi
func addWord(counter map[string]int, word string) {
// Inserisci qui il tuo codice
}
// getCount restituisce il conteggio di una parola specifica
func getCount(counter map[string]int, word string) int {
// Inserisci qui il tuo codice
return 0
}
// removeWord rimuove una parola dal contatore
// Restituisce true se la parola è stata trovata e rimossa
func removeWord(counter map[string]int, word string) bool {
// Inserisci qui il tuo codice
return false
}
// printWordCounts stampa i conteggi delle parole in ordine alfabetico
func printWordCounts(counter map[string]int) {
// Ottieni tutte le chiavi (parole) dalla mappa
words := make([]string, 0, len(counter))
for word := range counter {
words = append(words, word)
}
// Ordina le parole alfabeticamente
sort.Strings(words)
// Stampa ogni parola e il relativo conteggio nell'ordine stabilito
for _, word := range words {
fmt.Printf("%s: %d\n", word, counter[word])
}
}
func main() {
// Inizializza la mappa dei conteggi delle parole
wordCounter := make(map[string]int)
// Aggiungi alcune parole
words := []string{"apple", "banana", "apple", "orange", "banana", "apple"}
for _, word := range words {
addWord(wordCounter, word)
}
// Stampa i conteggi delle parole
fmt.Println("Word counts:")
printWordCounts(wordCounter)
// Ottieni il conteggio di parole specifiche
fmt.Printf("\nCount for 'apple': %d\n", getCount(wordCounter, "apple"))
fmt.Printf("Count for 'grape': %d\n", getCount(wordCounter, "grape"))
// Rimuovi una parola
removed := removeWord(wordCounter, "banana")
fmt.Printf("\nRemoved 'banana': %v\n", removed)
// Prova a rimuovere una parola inesistente
removed = removeWord(wordCounter, "grape")
fmt.Printf("Removed 'grape': %v\n", removed)
// Stampa i conteggi finali delle parole
fmt.Println("\nFinal word counts:")
printWordCounts(wordCounter)
}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