Cómo obtener un slice de claves de un map en Go: solución simple y eficiente
¡Hola a todos! Soy un desarrollador Go principiante y me encontré con una tarea aparentemente simple, pero no puedo encontrar una solución elegante.
Tengo un map, digamos `map[string]int`, donde las claves son nombres de usuarios y los valores son sus edades. Necesito obtener una lista de todas las claves (nombres) como un slice `[]string`, por ejemplo, para pasarlo a una función que muestre la lista de usuarios.
En Python simplemente escribiría `list(my_dict.keys())`. En JavaScript — `Object.keys(myObj)`. Pero en Go, por ahora solo veo la opción de iteración manual:
```go
users := map[string]int{
"Alice": 25,
"Bob": 30,
"Charlie": 22,
}
var keys []string
for k := range users {
keys = append(keys, k)
}
```
Esto funciona, pero parece una solución verbosa y artesanal. Me parece que para una operación tan frecuente debería haber una función incorporada en la biblioteca estándar de Go. Busqué en `reflect` y `maps` (Go 1.21+), pero no encontré una respuesta clara.
Preguntas:
1. ¿Es realmente la iteración manual la única
No answers yet.
Inicia sesión para dejar una respuesta