AnyCompiler

Maps

Un map almacena pares clave-valor, declarado con map[KeyType]ValueType. Los literales de map y la asignación usan una sintaxis familiar, y buscar una clave faltante no produce un panic — simplemente devuelve el zero value del tipo del valor.

package main

import "fmt"

func main() {
	scores := map[string]int{"Alice": 95, "Bob": 87}
	scores["Carol"] = 91

	fmt.Println(scores["Alice"])
	fmt.Println(scores["Carol"])
}
Output
95
91

El idiom comma-ok

Como una clave faltante devuelve silenciosamente un zero value, Go te da un segundo valor de retorno para distinguir los dos casos: value, ok := m[key] fija ok en false si la clave no estaba presente, permitiéndote distinguir "la clave genuinamente mapea a cero" de "la clave simplemente no existe".

package main

import "fmt"

func main() {
	scores := map[string]int{"Alice": 95, "Bob": 87}

	value, ok := scores["Dave"]
	fmt.Println(value, ok)

	value, ok = scores["Alice"]
	fmt.Println(value, ok)
}
Output
0 false
95 true

Siguiente: structs — agrupar datos relacionados.

Practice exercise

Crea un map ages := map[string]int{} (vacío), inserta "Alice" -> 30, luego imprime ages["Alice"].