Menu
Coddy logo textTech

Comprobar la existencia de claves

Parte de la sección Fundamentos del Journey de GO de Coddy — lección 89 de 109.

En Go, puedes comprobar si una clave existe en un mapa usando la forma de asignación de dos valores. Esto es importante porque acceder a una clave inexistente devuelve el valor cero, lo cual podría ser engañoso.

Crea un mapa de códigos de país:

countries := map[string]string{
    "US": "United States",
    "CA": "Canada",
}

// Comprobar si "UK" existe en el mapa
value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)

Resultado:

Value:  Exists: false

El booleano exists te indica si se encontró la clave. Usa esto en condicionales:

if _, exists := countries["US"]; exists {
    fmt.Println("US is in the map")
}

Resultado:

US is in the map
challenge icon

Desafío

Principiante

En este desafío, practicarás cómo comprobar si una clave existe en un mapa. Tienes un mapa de calificaciones de estudiantes y necesitas comprobar si la calificación de un estudiante específico existe en el mapa.

Completa el código para comprobar si el estudiante 'Emma' existe en el mapa grades y muestra un mensaje apropiado.

Hoja de referencia

Comprueba si una clave existe en un mapa utilizando la asignación de dos valores:

value, exists := mapName["key"]

El segundo valor es un booleano que indica si se encontró la clave:

countries := map[string]string{
    "US": "United States",
    "CA": "Canada",
}

value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)
// Salida: Value:  Exists: false

Úsalo en condicionales ignorando el valor con _:

if _, exists := countries["US"]; exists {
    fmt.Println("US is in the map")
}

Pruébalo tú mismo

package main

import "fmt"

func main() {
	// Mapa de calificaciones de estudiantes
	grades := map[string]int{
		"John":  85,
		"Sarah": 92,
		"Mike":  78,
		"Lisa":  95,
	}

	// Estudiante a verificar
	studentToCheck := "Emma"

	// TODO: Verificar si studentToCheck existe en el mapa de calificaciones
	// y almacenar el resultado en una variable llamada 'exists'
	// Pista: Usa el idioma comma-ok


	// Imprimir el 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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos