Iterar sobre mapas
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 92 de 109.
La palabra clave range permite iterar sobre todos los pares clave-valor de un mapa. Devuelve tanto la clave como el valor de cada entrada.
Crea un mapa del inventario de frutas:
inventory := map[string]int{
"apples": 5,
"bananas": 8,
"oranges": 12,
}
for fruit, quantity := range inventory {
fmt.Printf("%s: %d\n", fruit, quantity)
}El resultado muestra cada par clave-valor:
apples: 5
bananas: 8
oranges: 12Si solo necesitas las claves, puedes omitir la segunda variable:
for fruit := range inventory {
fmt.Println(fruit)
}Desafío
PrincipianteEn este desafío, practicarás cómo iterar sobre un mapa usando la palabra clave range en Go. Se ha creado un mapa de calificaciones de estudiantes para ti. Tu tarea es iterar a través del mapa e imprimir el nombre de cada estudiante y su calificación.
Completa el código para iterar a través del mapa studentGrades e imprimir el nombre y la calificación de cada estudiante en el formato: Student: [name], Grade: [grade]
Hoja de referencia
Usa range para iterar sobre pares clave-valor en un mapa:
inventory := map[string]int{
"apples": 5,
"bananas": 8,
"oranges": 12,
}
for fruit, quantity := range inventory {
fmt.Printf("%s: %d\n", fruit, quantity)
}Para iterar solo sobre las claves, omite la segunda variable:
for fruit := range inventory {
fmt.Println(fruit)
}Pruébalo tú mismo
package main
import (
"fmt"
"sort"
)
func main() {
// Un mapa de calificaciones de estudiantes
studentGrades := map[string]string{
"Alice": "A",
"Bob": "B",
"Charlie": "B+",
"David": "A-",
"Eva": "C",
}
// Recopilar los nombres de los estudiantes (claves) en un slice para ordenarlos
var names []string
for name := range studentGrades {
names = append(names, name)
}
sort.Strings(names)
// TODO: Iterar a través de la lista ordenada de nombres de estudiantes
// e imprimir el nombre y la calificación de cada estudiante en el formato:
// "Student: [name], Grade: [grade]"
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparación - Parte 1Operadores de comparación - Parte 2Operador lógico ANDOperador lógico OROperador lógico NOTConceptos básicos de precedencia de operadoresResumen: Realizar comparaciones7Flujo de control: Bucles
Explicación del bucle `for`Bucle `for` - BásicoBucle `for` - Solo condiciónLa palabra clave `break`La palabra clave `continue`Bucles anidadosResumen - Repetición de acciones2Variables y tipos de datos básicos
¿Qué es una variable?Inferencia de tipos con `:=`Enteros (int)Números de punto flotanteBooleanosStringsValores ceroConstantesConvenciones de nomenclaturaResumen - Variables y tipos5Entrada y salida básica
Salida con formatoVerbos de formatoImpresión de tiposObtener entrada básica del usuarioResumen: Entrada y salida8Funciones
Comprendiendo las funcionesDeclaración de una funciónLlamada a funcionesParámetros de funciónRetorno de un solo valorRetorno de múltiples valoresValores de retorno con nombreConceptos básicos del alcance de las funcionesResumen: Creando código reutilizable3Operadores básicos
Operadores aritméticosOperador de divisiónEl operador móduloOperador de asignaciónOperadores de asignación compuestaIncremento y decrementoResumen - Cálculos6Flujo de control: Condicionales
La sentencia `if`La palabra clave `else`La palabra clave `else if`Sombreado de variables en `if`Inicialización de variablesLa sentencia `switch``switch` con expresiones`switch` sin expresiónLa palabra clave `fallthrough`Resumen: Toma de decisiones