Verificando a Existência de Chaves
Parte da seção Fundamentos do Journey de GO da Coddy — lição 89 de 109.
Em Go, você pode verificar se uma chave existe em um mapa usando a forma de atribuição de dois valores. Isso é importante porque acessar uma chave inexistente retorna o valor zero, o que pode ser enganoso.
Crie um mapa de códigos de países:
countries := map[string]string{
"US": "United States",
"CA": "Canada",
}
// Verifica se "UK" existe no mapa
value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)Resultado:
Value: Exists: falseO booleano exists informa se a chave foi encontrada. Use isso em condicionais:
if _, exists := countries["US"]; exists {
fmt.Println("US is in the map")
}Resultado:
US is in the mapDesafio
InicianteNeste desafio, você praticará a verificação de se uma chave existe em um mapa. Você tem um mapa de notas de alunos e precisa verificar se a nota de um aluno específico existe no mapa.
Complete o código para verificar se o aluno 'Emma' existe no mapa grades e imprima uma mensagem apropriada.
Folha de consulta
Verifique se uma chave existe em um mapa usando a atribuição de dois valores:
value, exists := mapName["key"]O segundo valor é um booleano indicando se a chave foi encontrada:
countries := map[string]string{
"US": "United States",
"CA": "Canada",
}
value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)
// Saída: Value: Exists: falseUse em condicionais ignorando o valor com _:
if _, exists := countries["US"]; exists {
fmt.Println("US is in the map")
}Experimente você mesmo
package main
import "fmt"
func main() {
// Mapa de notas dos alunos
grades := map[string]int{
"John": 85,
"Sarah": 92,
"Mike": 78,
"Lisa": 95,
}
// Aluno para verificar
studentToCheck := "Emma"
// TODO: Verifique se studentToCheck existe no mapa de notas
// e armazene o resultado em uma variável chamada 'exists'
// Dica: Use o idioma comma-ok
// Imprimir o resultado
if exists {
fmt.Printf("%s's grade exists in the map\n", studentToCheck)
} else {
fmt.Printf("%s's grade does not exist in the map\n", studentToCheck)
}
}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