Avatar ·

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