Iterare sulle mappe
Fa parte della sezione Fondamenti del percorso GO di Coddy. Lezione 92 di 109.
La parola chiave range ti permette di scorrere tutte le coppie chiave-valore di una mappa. Restituisce sia la chiave sia il valore per ogni voce.
Crea una mappa dell'inventario della frutta:
inventory := map[string]int{
"apples": 5,
"bananas": 8,
"oranges": 12,
}
for fruit, quantity := range inventory {
fmt.Printf("%s: %d\n", fruit, quantity)
}Il risultato mostra ogni coppia chiave-valore:
apples: 5
bananas: 8
oranges: 12Go non garantisce l’ordine in cui range visita le voci della mappa, quindi queste righe possono comparire in un ordine diverso ogni volta che viene eseguito il ciclo.
Se ti servono solo le chiavi, puoi omettere la seconda variabile:
for fruit := range inventory {
fmt.Println(fruit)
}Sfida
PrincipianteIn questa sfida, ti eserciterai a scorrere una mappa usando la parola chiave range in Go. È stata creata per te una mappa dei voti degli studenti. Il tuo compito è scorrere la mappa e stampare il nome di ogni studente e il relativo voto.
Completa il codice per scorrere la mappa studentGrades e stampare il nome di ogni studente e il relativo voto nel formato: Student: [name], Grade: [grade]
Provalo tu
package main
import (
"fmt"
"sort"
)
func main() {
// Una mappa dei voti degli studenti
studentGrades := map[string]string{
"Alice": "A",
"Bob": "B",
"Charlie": "B+",
"David": "A-",
"Eva": "C",
}
// Raccogli i nomi degli studenti (le chiavi) in una slice per ordinarli
var names []string
for name := range studentGrades {
names = append(names, name)
}
sort.Strings(names)
// TODO: Scorri l'elenco ordinato dei nomi degli studenti
// e stampa il nome e il voto di ogni studente nel formato:
// "Student: [name], Grade: [grade]"
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
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