Menu
Coddy logo textTech

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: false

O 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 map
challenge icon

Desafio

Iniciante

Neste 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: false

Use 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)
	}
}
quiz iconTeste seus conhecimentos

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