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: falseEl 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 mapDesafío
PrincipianteEn 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)
}
}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