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.
main.go
Pruébalo tú mismo →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".
main.go
Pruébalo tú mismo →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"].