Iterando sobre Mapas
Parte da seção Fundamentos do Journey de GO da Coddy — lição 92 de 109.
A palavra-chave range permite iterar sobre todos os pares chave-valor em um mapa. Ela retorna tanto a chave quanto o valor para cada entrada.
Crie um mapa do inventário de frutas:
inventory := map[string]int{
"apples": 5,
"bananas": 8,
"oranges": 12,
}
for fruit, quantity := range inventory {
fmt.Printf("%s: %d\n", fruit, quantity)
}O resultado mostra cada par chave-valor:
apples: 5
bananas: 8
oranges: 12Se você precisar apenas das chaves, pode omitir a segunda variável:
for fruit := range inventory {
fmt.Println(fruit)
}Desafio
InicianteNeste desafio, você praticará a iteração sobre um mapa usando a palavra-chave range em Go. Um mapa de notas de alunos foi criado para você. Sua tarefa é iterar pelo mapa e imprimir o nome de cada aluno e sua nota.
Complete o código para iterar pelo mapa studentGrades e imprimir o nome e a nota de cada aluno no formato: Student: [name], Grade: [grade]
Folha de consulta
Use range para iterar sobre pares chave-valor em um 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 apenas sobre as chaves, omita a segunda variável:
for fruit := range inventory {
fmt.Println(fruit)
}Experimente você mesmo
package main
import (
"fmt"
"sort"
)
func main() {
// Um map de notas de alunos
studentGrades := map[string]string{
"Alice": "A",
"Bob": "B",
"Charlie": "B+",
"David": "A-",
"Eva": "C",
}
// Coleta os nomes dos alunos (keys) em um slice para ordená-los
var names []string
for name := range studentGrades {
names = append(names, name)
}
sort.Strings(names)
// TODO: Itere pela lista ordenada de nomes de alunos
// e imprima o nome e a nota de cada aluno no formato:
// "Student: [name], Grade: [grade]"
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores de Comparação e Lógicos
Operadores de Comparação - Parte 1Operadores de Comparação - Parte 2Operador Lógico ANDOperador Lógico OROperador Lógico NOTFundamentos de Precedência de OperadoresRecapitulação - Fazendo Comparações7Fluxo de Controle: Loops
O Loop `for` ExplicadoLoop For - BásicoLoop For - Apenas CondiçãoA Palavra-chave `break`A Palavra-chave `continue`Loops AninhadosRecapitulação - Repetindo Ações2Variáveis e Tipos de Dados Básicos
O que é uma variávelInferência de Tipo com `:=`Inteiros (int)Números de Ponto FlutuanteBooleanosStringsValores ZeroConstantesConvenções de NomenclaturaRecapitulação - Variáveis e Tipos5Entrada/Saída Básica
Saída FormatadaVerbos de FormataçãoImprimindo TiposObtendo Entrada Básica do UsuárioRecapitulação - Entrada e Saída8Funções
Entendendo FunçõesDeclarando uma FunçãoChamando FunçõesParâmetros de FunçãoRetornando um Único ValorRetornando Múltiplos ValoresValores de Retorno NomeadosFundamentos de Escopo de FunçãoRecapitulação - Criando Código Reutilizável3Operadores Básicos
Operadores AritméticosOperador de DivisãoO Operador MóduloOperador de AtribuiçãoOperadores de Atribuição CompostaIncremento e DecrementoRecapitulação - Cálculos6Fluxo de Controle: Condicionais
A Instrução `if`A Palavra-chave `else`A Palavra-chave `else if`Sombreamento de Variáveis no `if`Inicializando VariáveisA Instrução `switch`Switch com ExpressõesSwitch sem ExpressãoA Palavra-chave `fallthrough`Recapitulação - Tomando Decisões